переключение версий Python - PullRequest
16 голосов
/ 10 июля 2009

История: Одно из приложений, которое у меня есть, работает на Python 2.4, а другое на 2.6. Я попытался сделать sym-ссылку из python2.4 на python, и на Ubuntu Jaunty все начало развязываться. Теперь я загружаю каждую зависимость 2.4 и устанавливаю ее с помощью python2.4 setup.py install. Зависимости кажутся бесконечными.

Вопрос 1: Как я скажу любому фреймворку, который использует версию так и так далее, например, python, например, day django, чтобы использовать 2.6, и сказать, что mjango использует 2.4? Примерно так, как мы говорим, использовать базу данных вроде синтаксиса базы данных.

Вопрос2: Есть ли более элегантный способ переключения между версиями, поскольку мой хак символических ссылок был виртуальной катастрофой?

Вопрос3: Могу ли я скачать дебют для «скажи Харди» и сделать так, чтобы Джоун поверила, что это для нее?

Ответы [ 7 ]

31 голосов
/ 10 июля 2009

Использование Virtualenv .

Здесь больше информации: Работа с virtualenv .

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

Чтобы расширить мой ответ:

Вы можете установить несколько версий Python на свой компьютер (у меня есть 2.4, 2.5, 2.6 и 3.1 на моем компьютере - я устанавливаю каждую из исходных текстов). Я использую Mac и сохраняю свой системный Python в качестве того, что OS X устанавливает по умолчанию.

Я использую easy_install для установки пакетов. В Ubuntu вы можете получить easy_install следующим образом:

sudo apt-get install python-setuptools

Чтобы установить virtualenv, выполните:

easy_install virtualenv

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

virtualenv -p python2.6 --no-site-packages ~/env/NEW_DJANGO_PROJECT

И затем, когда я делаю что-либо, связанное с этим проектом, я активирую его:

source ~/env/NEW_DJANGO_PROJECT/bin/activate

Если я сейчас запускаю python, он использует этот новый python. Если я использую easy_install, он устанавливает вещи в мою новую виртуальную среду.

Итак, virtualenv сможет решить все ваши проблемы.

6 голосов
/ 25 мая 2012

Pythonbrew - магический инструмент. Который также может называться менеджером версий Python, похожим на менеджер версий RVM-Ruby, но Pythonbrew вдохновлен Perlbrew.

Pythonbrew - программа для автоматизации сборки и установки Python для пользователей $ HOME.

 Dependencies – curl

Перед установкой Pythonbrew, установите «curl» на машину, чтобы установить curl, используйте в терминале следующую команду, введите пароль для пользователя при появлении запроса.

 $sudo apt-get install curl

После установки curl, теперь установите Pythonbrew, скопируйте и вставьте следующие команды в терминал и введите пароль для пользователя при появлении запроса.

Рекомендуемый метод установки - Easy Install

 $ sudo easy_install pythonbrew 

Чтобы завершить установку, введите следующую команду

 $pythonbrew_install

Альтернативный способ установки:

Используйте команду curl для загрузки последней версии pythonbrew с github.

curl -kLO http://github.com/utahta/pythonbrew/raw/master/pythonbrew-install

После загрузки измените «pythonbrew-install» на «исполняемый»

 chmod +x pythonbrew-install

Затем запустите pythonbrew-install в терминале

./pythonbrew-install

Теперь Pythonbrew установлен в “Home Directory”, т.е. /home/user/.pythonbrew

Затем скопируйте и вставьте следующую строку в конец ~ / .bashrc

* ПРИМЕЧАНИЕ: замените “user” на ваше имя пользователя в системе

source /home/user/.pythonbrew/etc/bashrc

Вот и все! Закройте терминал. Шаги для установки различных версий Python:

Откройте новый терминал, введите следующую команду или скопируйте и вставьте его.

$pythonbrew install 2.6.6

Это установит Python 2.6.6, а для установки Python 2.7 или Python 3.2 измените номер версии в предыдущей команде.

$pythonbrew install 2.7

или

$pythonbrew install 3.2

Обновление: если во время установки вы получили ошибку, установите с помощью приведенной ниже команды.

$pythonbrew install --force 2.7

или

$pythonbrew install --force 3.2

Как управлять различными версиями Python, установленными в системе

Например, если в вашей системе установлены Python 2.6.6, Python 2.7 и Python 3.2, переключение между версиями можно выполнить следующим образом:

По умолчанию, Python 2.6.6 будет активным, и для переключения на Python 2.7 используйте следующую команду

$pythonbrew switch 2.7

Python по умолчанию заменен на Python 2.7.

Теперь, чтобы перейти на Python 3.2, измените номер версии в предыдущей команде.

$pythonbrew switch 3.2

Используйте приведенную ниже команду для проверки или просмотра списка установленных версий Python

$pythonbrew list

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

$pythonbrew list -k

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

$pythonbrew uninstall 2.7

Используйте приведенную ниже команду для обновления Pythonbrew

$pythonbrew update

Используйте команду ниже, чтобы отключить Pythonbrew и активировать версию по умолчанию

$pythonbrew off

Наслаждайтесь опытом установки нескольких версий Python на одном компьютере с Linux / Ubuntu!

4 голосов
/ 03 марта 2012

Я считаю http://github.com/utahta/pythonbrew намного проще в установке и использовании, чем любое другое решение.

Просто установите его, и вы получите следующие опции:

pythonbrew install 2.7.2
pythonbrew use 2.7.2 # use 2.7.2 for a current terminal session
pythonbrew switch 2.7.2 # use 2.7.2 by default system wide
pythonbrew uninstall 2.7.2

Примечание: если вы используете операционную систему на основе Linux с предустановленным Python, переключение (всей системы) на другую версию может привести к ошибкам, поэтому будьте осторожны.

3 голосов
/ 10 июля 2009

Более массовым подходом, чем Virtualenv, является параллельная установка двух версий Python.

Если существует существующая установка, и вы хотите вторую установку по тому же корневому пути (например, / usr / local), используйте эту цель при выполнении установки:

make altinstall

Когда ваша вторая установка - Python 2.6, у вас останется /usr/local/bin/python2.6 вместе со старым /usr/local/bin/python.

.

Простой способ переключения между этими двумя версиями - использовать псевдоним оболочки (псевдоним python = / usr / local / bin / python2.6) в оболочке, где вы вызываете интерпретатор. Но это не сработает для вложенных оболочек и вызовов "взрыва".

2 голосов
/ 10 декабря 2014

pyenv - еще один менеджер Python. README.md по этой ссылке содержит хороший набор инструкций, но в основном это:

$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv

Затем настройте $ PATH.

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Установите нужные версии Python:

$ pyenv install 2.7.8

После установки необходимо запустить это:

$ pyenv rehash

Затем переключитесь на версию Python, которую вы хотите запустить, для оболочки:

$ pyenv shell 2.7.8
1 голос
/ 10 июля 2009

"Вопрос 1: Как я скажу любому фреймворку, который использует версию так и так далее, например, python, например, day django, чтобы использовать 2.6 и сказать, что mjango использует 2.4?"

Вы просто запускаете их с нужной им версией Python. Запустите mjango с /usr/bin/python2.4 и django с /usr/bin/python2.6. Так легко.

"Вопрос2: есть ли более элегантный способ переключения между версиями, поскольку мой хак символических ссылок был виртуальной катастрофой?"

Да, смотрите выше. Выполните две отдельные установки Python и запустите явно с разными версиями.

"Вопрос3: Могу ли я скачать дебют для« скажи Харди »и заставить бойцов поверить в это для нее?»

Это обычно работает. Если это не так, то это потому, что у него есть зависимости, которые существуют в Hardy, и не существуют в Jaunty, и тогда вы не сможете.

А вот и Вопрос 4, который вы не задавали, но должны были задать. ;)

«Есть ли более простой способ загрузить все эти модули Python?»

Да, есть. Установите setuptools и используйте easy_install. Это не поможет вам с библиотечными зависимостями для тех модулей Python, которые имеют C-код и должны быть скомпилированы. Но это поможет всем остальным. easy_install загрузит и установит все зависимости Python соответствующего модуля за один раз. Это значительно ускоряет установку модулей Python.

0 голосов
/ 13 февраля 2016

Перейти в каталог проекта:

Создать среду: virtualenv -p python2.7 --no-site-packages ~ / env / twoseven

Затем активируйте ваш источник: источник ~ / env / twoseven / bin / activ

...