переключить версии python

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

Question1: как я скажу любой фреймворк, который идет и использует версию так и так PF python, как день django использовать 2.6 и сказать mjango использовать 2.4? Что-то как мы говорим использование синтаксиса базы данных базы данных немного.

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

Question3: могу ли я скачать deb для say hardy и заставить джанти поверить, что это для нее?

7 ответов


использовать виртуальное окружение.

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

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

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

вы можете установить несколько версий Python на свой компьютер (I имеет 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 должен быть в состоянии решить все ваши проблемы.


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

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

 Dependencies – curl

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

 $sudo apt-get install curl

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

рекомендуемый способ установки-простота установки

 $ sudo easy_install pythonbrew 

для завершения установки, введите следующую команду

 $pythonbrew_install

альтернативный способ монтажа:

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

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

после загрузки измените "pythonbrew-install" на "executable"

 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

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

$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!


найти 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, переключение (общесистемное) на другую версию может привести к сбоям, поэтому будьте осторожны.


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

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

make altinstall

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

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


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

вы просто запускаете их с конкретной версией python, которая им нужна. Запустить mjango с /usr/Бен/вместо python2.4 и Джанго с /usr/Бен/вместо python2.6. Вот так просто.

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

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

"Question3: могу ли я скачать deb для say hardy и заставить джанти поверить, что это для нее?"

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

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

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

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


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

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

создать условия : virtualenv-p python2.7 --no-site-packages ~/env/twoseven

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