Есть ли способ запустить скрипт Python, который находится внутри zip-файла из Bash? - PullRequest
5 голосов
/ 21 сентября 2010

Я знаю, что есть способ импортировать модули, которые находятся в zip-файле с python.Я создал своего рода библиотеку пакетов Python в ZIP-файле.

Я бы хотел добавить в этот пакет и мой скрипт "task", который использует библиотеку.Затем, используя bash, я хотел бы вызвать нужный сценарий в zip-файле без извлечения zip.

Цель состоит в том, чтобы иметь только один zip для перемещения в указанной папке, когда я хочу запустить свои сценарии.

Ответы [ 2 ]

9 голосов
/ 21 сентября 2010

Я наконец нашел способ сделать это. Если я создаю zip-файл, я должен создать __main__.py в корне zip-файла. Таким образом, можно запустить скрипт внутри main и вызвать if from bash с помощью следующей команды:

python myArchive.zip

Эта команда запустит файл __main__.py! :)

Затем я могу создать .command файл для запуска скрипта с правильными параметрами.

Вы также можете поместить некоторый код в файл __main__.py, чтобы обеспечить большую гибкость, если вам необходимо передать аргументы, например.

например: python __main__.py buildProject

Справочная документация здесь: https://docs.python.org/2/library/runpy.html

3 голосов
/ 21 сентября 2010

Посмотрите на zipimport . Должно работать прямо с установки. Возможно, вам придется проделать определенную работу, чтобы заставить pythonpath указать ваш zip-файл / каталог.

Этот модуль добавляет возможность импорта Модули Python (* .py, * .py [co]) и пакеты из архивов ZIP-формата. Это обычно не нужно использовать модуль zipimport явно; это автоматически используется встроенным механизм импорта элементов sys.path это пути к ZIP-архивам. Это пути к ZIP-архивам.

...