Я хочу сделать исполняемый файл пакета python из командной строки.Как сделать пакет исполняемым из командной строки?
Я знаю, что вы можете сделать chmod +x myfile.py
где myfile.py
начинается с #!/usr/bin/env
, чтобы сделать один исполняемый файл с помощью ./myfile.py
. Я также знаю, что вы можете сделать python -m mypackage
для запуска пакета, включая __main__.py
.
Однако, если добавить притон линию к __main__.py
пакета, запустите chmod +x mypackage
и попробуйте ./mypackage
, я получаю ошибку -bash: ./mypackage: Is a directory
.
Можно ли запускать такой пакет?
(Чтобы было ясно, я не ищет что-то вроде py2exe, чтобы сделать это автономный исполняемый файл. Я все еще надеясь, что это будет истолковано, я просто хочу, чтобы сделать запуск проще)
Вам необходимо запустить * файл *, а не каталог. Что происходит с запуском ./mypackage/__main__.py? Python может знать, как найти основную программу, но оболочка Linux этого не делает. – Prune
* Можно ли запускать такой пакет? * <= Нет. Но почему бы не отказаться от сценария оболочки? – dhke
Возможно, вы захотите заглянуть в точку ввода [setuptools 'console_scripts] (http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point). * (Предполагая, что ваш пакет является надлежащим дистрибутивом 'setuptools', содержащим' setup.py' и т. Д.) * –