изменение версии Python, используемой в virtualenv - PullRequest
4 голосов
/ 23 октября 2010

У меня есть проект в virtualenv, который использует python2.6, но теперь я хотел бы заставить его использовать python2.7. Есть ли способ сделать это без резервного копирования файлов моего проекта, воссоздать virtualenv для правильной версии python, а затем скопировать мои файлы обратно в virtualenv?

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

Ответы [ 3 ]

6 голосов
/ 23 октября 2010

Просто переместите ваш проект за пределы папок virutalenv.По той же причине их там быть не должно.

Использование другой версии python может привести к несколько другим пакетам, поэтому лучше просто создать новый virutalenv w / 2.7 и установить все ваши зависимости.Затем, когда вы захотите протестировать разные версии Python, просто активируйте ваши скрипты и используйте правильный env.

4 голосов
/ 21 февраля 2013

Это на 3 года позже, но может помочь кому-то еще ...

Этот ответ в основном относится к ОС Windows (7) в качестве основной платформы разработки.Вот шаги, которые я бы предложил для управления несколькими виртуальными средами Python.

NOTE1 : вам может потребоваться запустить командную строку с правами администратора.

NOTE2: вам может понадобиться установить версию "setuptools" для каждой версии Python;Я не уверен, поскольку я еще не перешел этот [пресловутый] мост.Не должно иметь значения, какой easy_install используется для установки virtualenv .Последняя версия virtualenv должна быть получена и должна поддерживать все версии Python (мое логическое предположение.)

NOTE3 : установщики Python .msi запишут несколько записей в Windows 'реестр.Поэтому вы можете захотеть использовать только архивный дистрибутив, если вы планируете разработку и тестирование под несколькими версиями Python.

  1. Установите переменную среды (в дополнение к обязательным; т.е. PYTHONPATH) и вызовите ееPYTHONHOME.Переменная PYTHONPATH должна затем ссылаться на переменную PYTHONHOME.
  2. Установите каждую версию Python, с которой вам нужно протестировать, что должно быть простым разархивированием базы кода PythonX.X в выбранном вами месте разработки.
  3. Чтобы упростить переключение между версиями Python, просто создайте файл .bat для каждой версии, который устанавливает для вас системную переменную среды (PYTHONHOME).Это подход, который я использую.

    Вы можете по существу использовать следующую команду сценария в файле .bat с именем "SetPython2.8.bat":

    setx / m PYTHONHOME "путь \ к \ python \ verion2.8"

  4. Когда вы собираетесь создать свою виртуальную среду [Python], запустите конкретный файл .bat в соответствии с желаемой версией Python, которая в приведенном выше примере будет "SetPython2.8.bat"".

    Щелкните правой кнопкой мыши и запустите от имени администратора.

  5. Создайте дополнительный файл .bat для каждой виртуальной среды Python просто для активации.Теперь, когда вам нужно установить определенную библиотеку для конкретной среды Python, просто запустите (от имени администратора) определенный файл .bat и установите библиотеки.

    Вот набор команд для гипотетического сценария, который называется "Activate_Python2.8_VEnv.bat ":

    title" VirtualEnv: Python2.8 "set PATH_TO_WORKSPC =" C: \ путь \ к \ рабочему пространству "cd% PATH_TO_WORKSPC% \ VirtualEnvironments \ python cd Python2.8TT = UL_PRT = _PR_VR$ g "Сценарии cmd / K \ activate.bat Проверьте файл activ.bat (в вашей виртуальной среде), чтобы понять, почему мы установили" _OLD_VIRTUAL_PROMPT ".

  6. При желании вы также можете выбратьиметь основную системную установку Python (как в 1 ).Но виртуальная среда, кажется, способ идти в том, что касается гибкости.

  7. [Не стесняйтесь улучшать]

Вот ветка со ссылками о том, как установить разные версии Python на платформе Mac или Unix

3 голосов
/ 23 октября 2010

Чтобы легко протестировать проект для многих версий Python, вы можете использовать tox .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...