1

Как установить (в Linux) простой дистрибутив Python, например. /opt/myPythonProject/python? Когда я потом устанавливаю пакеты (например, pip), все пакеты должны отправляться в /opt/myPythonProject. Он должен просто игнорировать системный python и его пакеты.Как установить второй/третий/питон в моей системе?

Моя конечная цель - разместить мой собственный код в /opt/myPythonProject/mycode, затем заархивировать весь корневой каталог проекта, развернуть его на машине клиента. Это в целом работает (при условии, что моя собственная арка/ОС/и т. Д. Одинакова).

Таким образом, большой вопрос: могу ли я доставить python/packages/собственный код в один большой zip? Если да, что мне нужно учитывать?

Если нет: то, что является самым простым решением для распространения приложения Python вместе с runtimes/packages и для его развертывания как пользователь приложения (не root).

+1

Разве это не то, что virtualenv (https://virtualenv.readthedocs.org/en/последняя /) для? – apotry

ответ

3

Использовать виртуальную среду python. Следуйте приведенным ниже командам.

pip install virtualenv 
virtualenv <my-new-directory> 
source <my-new-directory>/bin/activate 
pip install <my-package-name> 

Поступая так что все ваши пакеты инсталлируется в папку:

<my-new-directory>/lib/python2.7/site-packages/ 
+0

Четан прав. Кроме того, вы должны рассмотреть возможность установки Virtualenvwrapper, что делает его немного проще в использовании. https://virtualenvwrapper.readthedocs.org – seddonym

+0

Вам не нужен virtualenvwrapper, поместите свою строку shebang как '#!/path/to/venv/bin/python', и вы станете золотым – hd1

1

У меня была аналогичная проблема в последнее время с тем, как распространять свою программу на Python в качестве самостоятельного. Я использовал Pyinstaller (http://www.pyinstaller.org/).

Вы можете включить другие файлы данных, такие как exes или images, добавив их пути к сгенерированному файлу spec. Документация довольно хорошо объясняет это.

0

Я использую

  • virtualenv для нескольких установок Python
  • Setuptools для упаковки (через пип)