У меня есть вопросы о файлах яиц в Python.
У меня много кода Python, организованного по пакетам, и я пытаюсь создать файлы яиц. Я следую инструкциям , но они очень распространены.
В соответствии с этим, похоже, мне нужен файл setup.py.
- Подскажите, пожалуйста, что мне нужно поместить в файл setup.py и где он должен находиться?
- Я полагаю, достаточно создать setup.py, а затем запустить «setup.py bdist_egg» для получения файла с яйцом. Не могли бы вы подтвердить?
- Можно ли включать в файл яйца только файлы .pyc?
- Имея файл .egg, как я могу просто запустить код из него, не распаковывая, как
java -jar <jar file>
делает?
Ответы:
Вы читаете не ту документацию. Вы хотите этого: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
Создание setup.py описано в документации distutils в документации стандартной библиотеки Python здесь . Основное отличие (для яиц питона)
import setup
от васsetuptools
, а не отdistutils
.Ага. Это должно быть правильно.
Я так не думаю.
pyc
файлы могут зависеть от версии и платформы. Вы могли бы открыть яйцо (это должны быть просто zip-файлы) и удалить.py
файлы, оставив.pyc
файлы, но это не рекомендуется.Я не уверен. Это может быть «Режим разработки». Или вы ищете режим «py2exe» или «py2app»?
источник
Для №4 наиболее близким к запуску java с файлом jar для вашего приложения является новая функция Python 2.6, исполняемые zip-файлы и каталоги .
Где myapp.zip - это zip-
__main__.py
архив, содержащий файл, который выполняется как исполняемый файл сценария. Зависимости вашего пакета также могут быть включены в файл:Также можно казнить яйцо, но заклинание не такое приятное:
# Bourn Shell and derivatives (Linux/OSX/Unix) PYTHONPATH=myapp.egg python -m myapp
Это помещает myapp.egg в путь Python и использует аргумент -m для запуска модуля. Ваш myapp.egg, скорее всего, будет выглядеть примерно так:
И python запустится
__init__.py
(вы должны проверить это__file__=='__main__'
в своем приложении для использования в командной строке).Файлы яиц - это просто zip-файлы, поэтому вы можете добавить
__main__.py
в свое яйцо с помощью zip-инструмента и сделать его исполняемым в python 2.6 и запустить его, какpython myapp.egg
вместо приведенного выше заклинания, где установлена переменная среды PYTHONPATH.Более подробную информацию об исполняемых zip-файлах, в том числе о том, как сделать их непосредственно исполняемыми с помощью shebang, можно найти в сообщении блога Майкла Фурда по этому вопросу .
источник
Я думаю, теперь вам следует использовать колеса Python для распространения вместо яйца.
источник