Я хочу, чтобы моя программа cython была автономной исполняемой на linux, а не для импорта. ПослеCython автономный исполняемый файл на ubuntu
Cython --embed
я получил кесарево файл, теперь, как я могу сделать его исполняемым?
Я хочу, чтобы моя программа cython была автономной исполняемой на linux, а не для импорта. ПослеCython автономный исполняемый файл на ubuntu
Cython --embed
я получил кесарево файл, теперь, как я могу сделать его исполняемым?
Я думаю, вам нужно скомпилировать полученный вами файл .c
.
Предполагая, что вы используете Python 3.5 и не должны ссылаться на другие библиотеки, чем питона вы можете сделать это с помощью простого gcc
команды, как:
gcc -I /usr/include/python3.5m -o your_program your_file.c -lpython3.5m
(возможно, потребуется удалить m
следующие номер версии)
Как вы ожидаете, он будет использовать инструкцию if __name__ == "__main__":
в качестве точки входа в программу.
спасибо, но не могли бы вы объяснить мне, что есть (m) в lpython3.5m, так как я могу успешно скомпилировать с 'm', и что было бы эффектами, если удалить 'm'. Нужно ли иметь «if__name = __ main», как я уже скомпилировал без него? – user1779646
'm' указывает, что python был скомпилирован с поддержкой' PyMalloc', в нескольких словах более эффективная функция распределения, чем системные системы malloc (см. Http://stackoverflow.com/a/16677339/5050917 или https : //www.python.org/dev/peps/pep-3149/ для получения дополнительной информации). 'If __name__ ==" __main __ ":' не является обязательным, вы также можете просто отказаться от кода, который хотите выполнить при запуске программы, точно так же, как при запуске с помощью python. – mgc
Используйте 'ldconfig -p | grep python3.5', чтобы увидеть библиотеки, установленные в вашей системе. В моем случае я вижу, что у меня есть только libpthon3.5m. – mgc
Что вы пытаетесь сделать? вы пытаетесь сделать его 'import'able в Python или вы пытаетесь внедрить python и выполнить его? Пожалуйста, отредактируйте свой вопрос и уточните их, чтобы сделать его немного проще для использования, чтобы получить то, что вы пытаетесь сделать. –
@Jim Fasarakis-Hilliard Я отредактировал вопрос. – user1779646