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

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

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

$ java -jar jar-file

person Marko Kukovec    schedule 12.08.2009    source источник


Ответы (4)


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
person monkut    schedule 12.08.2009

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

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

person PJ Eby    schedule 24.05.2010
comment
Я использую Python 3, я не понимаю, как добавить модуль с именем main и где, у вас есть пример? - person Eric Bellet; 03.09.2019
comment
Таким же образом вы добавляете любой другой модуль в проект Python: добавляя .py файл с этим именем, а затем перечисляя его в аргументы настройки - person PJ Eby; 04.09.2019

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

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

sys.path.append(egg_path)

import suds
#... rest of code
person Mohammad Shahid Siddiqui    schedule 19.03.2013
comment
@Mark, где это написано? Возникает вопрос: как запустить файлы яиц Python напрямую, не устанавливая их? Это правильный ответ. - person Adham; 14.04.2014
comment
@Adham - пример Java в вопросе из командной строки, а не из Java - person mmmmmm; 14.04.2014
comment
@Mark Вы делаете вывод о том, что задается в вопросе, на основе этого примера. В вопросе нет упоминания о командной строке. - person Adham; 15.04.2014
comment
@Adham - единственная полезная интерпретация - файлы jar запускаются из командной строки - person mmmmmm; 15.04.2014
comment
@Mark Запуск из командной строки - это ВАША интерпретация того, что задает вопрос. Интерпретация не требуется, если вопрос явно задается как запустить файлы яиц Python напрямую, не устанавливая их? - person Adham; 15.04.2014

Этапы прямого выполнения файла Python Egg

Предположим, что у вас есть файл яйца и файл драйвера для выполнения следующей команды.

PYTHONPATH=eggfilename.egg python driverfile.py

приведенная выше команда для без установки файла яйца с кодом Python.

person Madhu Cheemala    schedule 03.05.2018