Подтвердить что ты не робот

Как запускать файлы яиц Python напрямую, не устанавливая их?

Можно ли запускать файлы яйца Python напрямую, поскольку вы можете запускать jar файлы с Java?

Например, с Java вы можете использовать что-то вроде:

$ java -jar jar-file
4b9b3361

Ответ 1

A python egg - это "формат импорта с одним файлом". Обычно это пакет python.

Вы можете импортировать пакет в яйце, если вы знаете его имя, и оно находится на вашем пути.

Вы можете выполнить пакет, используя опцию -m и имя пакета.

Однако пакеты python обычно ничего не делают при выполнении, и вы можете получить сообщение об ошибке. Опцию -c можно использовать для запуска кода. (Подробнее о параметрах командной строки см. http://docs.python.org/using/cmdline.html

> python -m sphinx
sphinx is a package and cannot be directly executed


> python -c "import <package in an egg>; <function>();"



> python -c "import sphinx; print sphinx.package_dir"
C:\Python26\lib\site-packages\sphinx-0.6.1-py2.6.egg\sphinx

Ответ 2

С Python 2.6 вы можете использовать python some.egg, и он будет выполнен, если он включает в себя модуль с именем __main__.

Для более ранних версий Python вы можете использовать PYTHONPATH=some.egg python -m some module, а somemodule из яйца будет запущен в качестве основного модуля. (Примечание: если вы работаете в Windows, вам нужно сделать отдельный SET PYTHONPATH=some.egg.)

Ответ 3

Например, если вы хотите импортировать модуль suds, который доступен как .egg файл:

egg_path='/home/shahid/suds_2.4.egg'

sys.path.append(egg_path)

import suds
#... rest of code