2013-07-12 5 views
3

Я работаю сам по себе прямо сейчас, но я смотрю на способы масштабирования моей операции.Есть ли способ «версии» моего дистрибутива python?

Я хотел бы найти простой способ для распространения моего дистрибутива Python, чтобы я мог легко воссоздать его. Есть ли инструмент для этого? Или я могу добавить /usr/local/lib/python2.7/site-packages/ (или что-то еще) в репозиторий svn? Это не решает проблемы с PATH s, но я всегда могу написать сценарий для изменения пути. В идеале, решение было бы построить мой Python env в виртуальной машине, а затем передать копии VM.

Как другие люди решили это?

+0

Зачем вам нужно устанавливать установленные библиотеки версий? Резервное копирование, конечно, но контроль версий? – delnan

+0

Возможно, «версия» - это неправильное слово. Конечная цель, однако, состоит в том, чтобы иметь переносимый экземпляр Python, который я могу дать коллеге, и что они могут установить с небольшими трудностями, чтобы они могли быстро работать и работать. – BenDundee

ответ

5

virtualenv + requirements.txt - твой друг.

Вы можете создать несколько виртуальных инсталляций python для своих проектов, все, что содержит именно те версии библиотек, которые вам нужны (Совет: pip freeze выплескивает файл требований.txt с точной версией библиотеки).

Находите ссылку на virtualenv здесь: http://simononsoftware.com/virtualenv-tutorial/ (это вопрос от этого вопроса Comprehensive beginner's virtualenv tutorial?).

В качестве альтернативы, если вы просто хотите распространять свой код вместе с библиотеками, стоит попробовать PyInstaller. Вы можете упаковать все вместе в статическом исполняемом файле - вам даже не нужно будет устанавливать программное обеспечение впоследствии.

+0

Ну, цель состоит в том, чтобы иметь среду, которую могут использовать другие разработчики, поэтому я не уверен, что хочу PyInstaller. Я проверю виталенев - я слышал об этом, но никогда не исследовал его внимательно. – BenDundee

+0

На мой взгляд, нет никакого пути вокруг virtualenv, если вы разрабатываете python в команде. Когда дело доходит до развертывания (имя несколько: Heroku, Engine Yard, ...) - все о воссоздании состояния библиотеки python. Я добавил комментарий PyInstaller из-за вашего комментария «установка + быстрый запуск и запуск». – Gregor

5

Вы хотите использовать virtualenv. Он позволяет создать конкретный каталог приложений (ов) для установленных пакетов. Вы также можете использовать pip для генерации и построения requirements.txt

0

Для этой же цели, то есть имея то же распределение Python, что и мои коллеги, я попытался создать виртуальную среду в сетевом диске, так что каждый из нас будет способный использовать его, без каких-либо локальных копий. Идея заключалась в том, чтобы совместно использовать те же пакеты, что и в общей папке. Результат: Python работает так невыносимо медленно, что его нельзя использовать. Также установка пакета была очень вялой.

Так что, похоже, нет другого способа, кроме использования virtualenv и файла требований. (Даже если, к сожалению, часто это не всегда работает гладко в Windows, и для этого требуется ручная установка некоторых пакетов и зависимостей, по крайней мере, в это время написания.)

Смежные вопросы