Каков наилучший способ создания частной, автономной среды python?

Я хочу создать частную, автономную среду Python, которая не связывается с системными библиотеками (как это делает virtualenv), а также включает в себя собственные версии стандартных библиотек C / C ++ для пакетов Python, которые являются просто обертками для этих библиотек ( PIL и libjpeg, например).

Я видел коммерческие приложения, которые распространяют всю рабочую среду в каталоге, поэтому я знаю, что это можно сделать.

Вопрос в том, есть ли инструмент, который делает это легко сделать? Virtualenv почти достает меня туда, особенно. с -no-site-пакетами и флагами -relocatable, но это не решает проблему для стандартных библиотек «C». Я хочу, чтобы иметь возможность создавать PIL, например, который использует личную версию libjpeg и libpng

Какие-либо предложения?

3 Solutions collect form web for “Каков наилучший способ создания частной, автономной среды python?”

Это похоже на то, что ваш на самом деле после этого способ связать определенную установку и скрипт python с дистрибутируемым пакетом. Вы можете сделать следующее:

  • Загрузите, скомпилируйте и установите python в каталог проекта (например, python-toolchain)
  • Создайте префиксный скрипт (toolchain), который будет относить относительный путь и обновлять PATH , PYTHONPATH , LD_LIBRARY_PATH динамически.
 #! / Bin / ш

 # Если ваш умник, вы можете определить каталог установки динамически
 prefix = 'установить каталог'
 Набор инструментов = $ PREFIX / питон-набора инструментов
 export PATH = $ toolchain / bin: $ prefix / app / bin: $ PATH
 export LD_LIBRARY_PATH = $ toolchain / lib: $ LD_LIBRARY_PATH
 export PYTHONPATH = $ prefix / app / lib: $ PYTHONPATH
 exec $ *
  • Тогда волшебный файл cookie в вашем скрипте приложения выглядит следующим образом:
 #!  ... / установить каталог / toolchain python

 напечатайте "Hello World!"
  • Теперь вы должны иметь возможность распространять каталог следующим образом:
    • package/
      • python-toolchain/
      • app/

Попробуйте cx_Freeze или py2exe. Они используются для упаковки приложений Python, чтобы сделать их распространяемыми и включать все пакеты / библиотеки, от которых оно зависит.

Я успешно использовал py2exe . Там также cx_Freeze .

См. Также дополнительные советы:

  • Есть ли альтернативы py2exe?

Относительно этого утверждения:

который не ссылается на системные библиотеки

Вы, конечно, не можете полностью устранить, что для этого требуются некоторые системные библиотеки. Если вы хотите использовать приложение Windows, ему придется использовать Windows API, например. Я предполагаю, что вы не хотите связывать всю копию Windows с вашим приложением, если на них не установлена ​​Windows.

  • Ubuntu 11.04: Установка PIL в virtualenv с помощью PIP
  • Может ли virtualenv наследовать от другого?
  • Использует ли virtualenv цель (в производстве) при использовании докеров?
  • Есть ли хороший учебник об использовании buildout и pip?
  • Получение виртуальной env-ошибки python после установки Lion
  • Не удается найти способ установки python-dev на Mac OS X
  • virtualenv с python2 и python3 через Homebrew
  • Задание интерпретатора python из virtualenv в emacs
  • Невозможно выполнить учебник Python от heroku в папке Dropbox
  • PIP / easy_install PIL в Virtualenv vcvarsall.bat ошибка Windows 7
  • Какова связь между средами и проектами в virtualenvwrapper?
  • Python - лучший язык программирования в мире.