переключить версии 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 / активировать