Как развернуть простое приложение на Python в Linux для общей корпоративной среды?
Я написал (очевидно) отличный инструмент на python (под linux), которым я хотел бы поделиться со своими коллегами. Мы работаем на разных машинах, но в одной общей среде. Кроме того, мы являемся пользователями, поэтому нет простого способа установить зависимости.
Теперь вот подвох: мне нравится python, моим пользователям все равно. У них есть доступ к общекорпоративной установке python (простой), но они не хотят заботиться (ну, это понятно, не каждый программист).
Вопрос в том, что в такой общей среде, где доступен интерпретатор Python, а модулей для моего приложения нет, каким может быть самый простой способ поделиться моим инструментом с другими пользователями?
Как вы можете себе представить, мои пользователи не хотят ничего устанавливать (особенно в пользовательском пространстве), настройка пути, вероятно, будет на грани принятия. Решение не должно упаковывать ВСЕ, как замораживание, это, вероятно, перебор...
Для пользователя это должно быть: копирование определенного tar.gz или переход в папку приложения (общая), запуск приложения, готово.
Так может быть модули должны как-то встраиваться в приложение? Или я должен разместить (в своем общем доме) модули в библиотеке и настроить некоторые пути? Или может быть virtualenv мог бы помочь, если бы пользователи могли скопировать весь env с путем?
Я надеюсь, что вы видите мою проблему:D
Спасибо!
4 ответа
Для "той же общей среды" вы можете сделать:
устанавливать
your-script
в/your/shared/home/virtualenv
$ pip install your-app.tar.gz -E /your/shared/home/virtualenv
Сделайте ссылку:
$ ln -s /your/shared/home/virtualenv/bin/your-script /shared/app/folder/
Ваши сотрудники могут вызывать сценарий как
/shared/app/folder/your-script
или добавить/shared/app/folder/
вPATH
,
Особенности:
- Вы выбираете, какая версия вашего скрипта доступна, контролируя, куда указывает символическая ссылка. Старые версии могут быть запущены как
/your/shared/home/virtualenv-old-version/bin/your-script
- Вы можете использовать расширения Python, написанные на C
- если вы устанавливаете в virtualenv через
pip install -e .
; он делает доступной версию из вашего рабочего каталога
В общем, это не предпочтительный вариант для установки приложений Python.
Предполагая, что ваши стандартные установки - это Python 2.6 или новее, и вы не используете модули расширения C, вы можете просто выбросить все это в zipfile, включая __main__.py
файл, а затем добавьте заголовок оболочки в zipfile. По вашему сценарию именно эта функция была добавлена.
См. http://bugs.python.org/issue1739468 для более подробной информации о том, как это настроить.
Вы можете использовать pyinstaller для создания автономных исполняемых файлов
см: HTTP://www.pyinstaller.org/
Какова природа вашего приложения? Является ли это просто "подключить некоторые значения, получить ответ"? Или это более интерактивный / графический? Если первое, ваше приложение может быть упаковано как утилита на UtilityMill. Тогда ваши пользователи смогут просто получить доступ к вашему приложению через стандартный браузер.