Как развернуть простое приложение на Python в Linux для общей корпоративной среды?

Я написал (очевидно) отличный инструмент на python (под linux), которым я хотел бы поделиться со своими коллегами. Мы работаем на разных машинах, но в одной общей среде. Кроме того, мы являемся пользователями, поэтому нет простого способа установить зависимости.

Теперь вот подвох: мне нравится python, моим пользователям все равно. У них есть доступ к общекорпоративной установке python (простой), но они не хотят заботиться (ну, это понятно, не каждый программист).

Вопрос в том, что в такой общей среде, где доступен интерпретатор Python, а модулей для моего приложения нет, каким может быть самый простой способ поделиться моим инструментом с другими пользователями?

Как вы можете себе представить, мои пользователи не хотят ничего устанавливать (особенно в пользовательском пространстве), настройка пути, вероятно, будет на грани принятия. Решение не должно упаковывать ВСЕ, как замораживание, это, вероятно, перебор...

Для пользователя это должно быть: копирование определенного tar.gz или переход в папку приложения (общая), запуск приложения, готово.

Так может быть модули должны как-то встраиваться в приложение? Или я должен разместить (в своем общем доме) модули в библиотеке и настроить некоторые пути? Или может быть virtualenv мог бы помочь, если бы пользователи могли скопировать весь env с путем?

Я надеюсь, что вы видите мою проблему:D

Спасибо!

4 ответа

Решение

Для "той же общей среды" вы можете сделать:

  1. устанавливать your-script в /your/shared/home/virtualenv

    $ pip install your-app.tar.gz -E /your/shared/home/virtualenv
    
  2. Сделайте ссылку:

    $ ln -s /your/shared/home/virtualenv/bin/your-script /shared/app/folder/
    
  3. Ваши сотрудники могут вызывать сценарий как /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. Тогда ваши пользователи смогут просто получить доступ к вашему приложению через стандартный браузер.

Другие вопросы по тегам