Как запускать файлы яиц Python напрямую, не устанавливая их?
Можно ли запускать файлы яйца Python напрямую, поскольку вы можете запускать jar файлы с Java?
Например, с Java вы можете использовать что-то вроде:
$ java -jar jar-file
Ответ 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