2017-02-04 11 views
0

Я немного смущен тем, что происходит, но я могу быть просто недоразумением, как virtualenv предназначен для работы.Понимание pip, virtualenv и пакетов

Во-первых, я обнаружил, что получаю ошибки, потому что путь к моей папке git имел в нем пробелы. После удаления пробелов из пути я создал новый virtualenv, а затем, когда активировался список pip, начал работать правильно - показывая, что было установлено в директории site-packages. Заметьте, я не создавал venv с -no-site-пакетами, и я не создавал файл требований. Txt с зависанием pip.

Вот где начинается путаница ...

дома, я мерзавец тянуть синхронизировать, и я вижу новую папку venv, но:

  1. Активация venv и используя пип список делает не показывать пакеты, которые были установлены на работе/в репо.
  2. Пример: папка PyQt меньше половины размера, который был на работе. Примечание. QT сам был установлен на работе, но не дома (автономная установка, очевидно, а не pip). Другим примером является openpyxl. Папка есть, но не указана в списке pip.

Существует ли замораживание записями, потому что получение настроек на отдельном компьютере означает, что вам необходимо глобально установить то, что указано в файле требований.txt (если бы я создал его)? Я думал, что venv будет содержать все, и пакеты не нужно устанавливать, так как они уже находятся в папке.

Я знаю, что он упоминается в файлах virtualenv для gitignore env, но я не понимаю, почему. И я слышал, что его легче получить в репо. Если, конечно, это не-нет, следовательно, мои проблемы.

Я был бы признателен за понимание того, как pip, venv и git наилучшим образом используются вместе для использования нескольких компьютеров (и, конечно, нескольких людей). Вы бы подумали, что Googling решит его, но пока эти особенности не ускользнули от меня.

Благодаря

ответ

1

По моему опыту, лучший способ для управления проектами Python на несколько компьютеров не пытаться распространять пипсы пакетов или virtualenv установку вместе с программой, так как это может привести к разному роду проблемы. На самом деле, я даже не уверен, что то, что вы пытаетесь сделать, возможно. Вместо этого я бы рекомендовал следующее:

  1. Исключить установку virtualenv из вашего мерзавца репо, добавив env в файл .gitignore.

  2. Запустить pip freeze > requirements.txt, чтобы написать все необходимые пакеты до requirements.txt.

  3. На других компьютерах вам необходимо запустить программу, запустите pip install -r requirements.txt, чтобы установить необходимые пакеты.

Этот подход, помимо того, что довольно просто, а также дает вам (и любой другой, кто может захотеть запустить программу) гибкость, чтобы настроить их локальное окружение Python, однако они хотят.

+0

спасибо, имеет смысл. – JamesK

0

Прежде всего, я не специалист по настройке этого, но здесь.

Git - это контроль версий. Вы делаете мгновенный снимок файлов & изменений файлов с git. Подобно настройке контрольно-пропускного пункта, его важно отслеживать дорожку & было сделано & изменено с помощью элементов управления версиями.

Virtualenv - это просто виртуальная среда. Как и настройка сервера, вы настраиваете виртуальную среду Python.

С помощью virtualenv вы можете установить, какая версия python/pip используется. pip - система управления пакетами. Это помогает вам тянуть пакет, который вам нужен & все его зависимости. Если библиотека требует других предметов, она также будет вытащена. Этот тип «управления библиотекой» доступен на многих языках.

С помощью virtualenv вы можете указать, что хотите использовать; python2.7 или 3.5, или любую другую версию, которая вам нужна, при условии, что она находится на машине, которую она использует.

После того, как вы активируете свой virtualenv, вы можете установить нужные библиотеки. Конечно, эти библиотеки специфичны для этого, когда вы активируете этот virtualenv в этом проекте.

файл требования.txt - это всего лишь место, где можно сделать снимок того, что у вас есть "pip install" ed. Вы можете перенести этот файл в другой проект и установить эти библиотеки еще где. Кроме того, вы можете использовать git, чтобы поместить эти библиотеки в репо, но у вас могут быть проблемы.

Лично я не думаю, что могу работать без virtualenv. Один из моих проектов может потребовать python2.7, другой, который я видел, требуется python3.4, поэтому он позволяет вам гибкость.

Также при настройке сервера (apache или nginx) вам нужно указать, для чего виртуальный сервер вам нужен, чтобы ваш сайт работал.

Относительно всех этих настроек, я просто начинающий, но люблю python & django.

Надеюсь, я сделал это правосудие. Счастливое кодирование

См. Следующие документы для более подробных конфигураций. & пояснения.

[https://virtualenv.pypa.io/en/stable/][1]

[https://github.com/pypa/pip][1]

[https://git-scm.com/book/en/v2/Getting-Started-Git-Basics][1]