Используйте другую версию Python с virtualenv
У меня есть система Debian в настоящее время работает с python 2.5.4. Я получил virtualenv правильно установлен, все работает нормально. Есть ли возможность, что я могу использовать virtualenv с другой версией Python?
я скомпилировал Python 2.6.2 и хотел бы использовать его с некоторыми virtualenv. Достаточно ли перезаписать двоичный файл? Или мне нужно что-то изменить в отношении библиотек?
19 ответов:
просто использовать
--python(или короткое-p) опция при создании экземпляра virtualenv для указания исполняемого файла Python, который вы хотите использовать, например:virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>N. B. Для Python 3.3 или позже, обратитесь к Aelfinn это ответ ниже. [Примечание редактора: я знаю, что обычно это должен быть комментарий, а не редактирование, но новый комментарий будет скрыт, и я просто потратил 45 минут на распутывание ошибок, потому что этот важный ответ был похоронен под тремя или четыре попугая отвечают. Я просто пытаюсь сэкономить всем время здесь.]
это шаги, когда вы находитесь в среде общего хостинга и должны установить & complie Python из источника, а затем создать venv из вашей версии Python. Для Python 2.7.9 вы бы сделали что-то в этом роде:
mkdir ~/src wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz tar -zxvf Python-2.7.9.tgz cd Python-2.7.9 mkdir ~/.localpython ./configure --prefix=$HOME/.localpython make make installvirtual env
cd ~/src wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63 tar -zxvf virtualenv-15.0.2.tar.gz cd virtualenv-15.0.2/ ~/.localpython/bin/python setup.py install virtualenv ve -p $HOME/.localpython/bin/python2.7 source ve/bin/activateестественно, это может быть применимо к любой ситуации, когда вы хотите реплицировать точную среду, в которой вы работаете и развертываете.
обновление: для Python3. 6, ниже
pyvenvскрипт устарел. Вместо, документы Python предлагают создание виртуальной среды с помощью следующей команды:python3 -m venv <myenvname>для python3 (3.3+) используйте либо приведенный выше метод, либо скрипт.
pyvenv /path/to/new/virtual/environmentобратите внимание:
venvне позволяет создавать virtualenv с другими версиями Python. Для этого установите и используйтеvirtualenvпакета.
под Windows для меня это работает:
virtualenv --python=c:\Python25\python.exe envnameбез
python.exeЯ получилWindowsError: [Error 5] Access is deniedУ меня Python2.7.1 установлен с virtualenv 1.6.1, и я хотел python 2.5.2.
есть более простой способ,
virtualenv venv --python=python2.7благодаря комментарию это работает только в том случае, если у вас установлен python2.7 на системном уровне (например, /usr/bin/python2.7).
в противном случае, если вы используете доморощенного, вы можете использовать путь, чтобы дать вам то, что вы хотите.
virtualenv venv --python=/usr/local/bin/pythonвы можете найти путь к вашей установке python с помощью
which pythonЭто также будет работать с Python 3.
which python3 >> /usr/local/bin/python3 virtualenv venv --python=/usr/local/bin/python3в конечном итоге конденсации на:
virtualenv venv -p `which python` virtualenv venv -p `which python3`
Mac OSX 10.6.8 (Snow Leopard):
1) Когда вы делаете
pip install virtualenv, команда pip связана с одной из ваших версий python, иvirtualenvустанавливается в эту версию python. Вы можете сделать$ which pipчтобы увидеть, какая версия python это. Если вы видите что-то вроде:
$ which pip /usr/local/bin/pipзатем выполните:
$ ls -al /usr/local/bin/pip lrwxrwxr-x 1 root admin 65 Apr 10 2015 /usr/local/bin/pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pipвы можете увидеть версию python в выходных данных.
по умолчанию это будет версия python, которая используется для любой новой среды, которую вы создаете. Однако вы можете указать любую версию python, установленную на вашем компьютере, для использования в новой среде с помощью
-p flag:$ virtualenv -p python3.2 my_env Running virtualenv with interpreter /usr/local/bin/python3.2 New python executable in my_env/bin/python Installing setuptools, pip...done.
virtualenv my_envсоздать папку в текущем каталоге, который будет содержать исполняемые файлы Python и копию pip [команда], который можно использовать для установки других пакеты.http://docs.python-guide.org/en/latest/dev/virtualenvs/
virtualenvпросто копирует python из местоположения на вашем компьютере в недавно созданный каталог my_env/bin/.2) система python находится в
/usr/bin, в то время как различные версии python, которые я установил, были по умолчанию установлены в:/usr/local/bin3) различные питоны, которые я установил, имеют такие имена, как
python2.7илиpython3.2, и я могу использовать эти имена, а не полные пути.========VIRTUALENVWRAPPER=========
1) у меня были некоторые проблемы с получением virtualenvwrapper для работы. Это то, что я в конечном итоге положить в
~/.bash_profile:export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/django_projects #Not very important -- mkproject command uses this #Added the following based on: #http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 #source /usr/local/bin/virtualenvwrapper.sh source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh2) The
-p optionработает по-разному с virtualenvwrapper: я должен указать полный путь к интерпретатору python, который будет использоваться в новой среде(когда я не хочу использовать версию python по умолчанию):$ mkvirtualenv -p /usr/local/bin/python3.2 my_env Running virtualenv with interpreter /usr/local/bin/python3 New python executable in my_env/bin/python Installing setuptools, pip...done. Usage: source deactivate removes the 'bin' directory of the environment activated with 'source activate' from PATH.в отличие от виртуальное окружение, virtualenvwrapper создаст среду, в месте, указанном в переменной $WORKON_HOME среды. Это держит все ваши среды в одном месте.
предположим, что в настоящее время у вас установлен python 2.7 в вашем virtualenv. Но хочу воспользоваться
python3.2, вам придется обновить это с помощью:$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenvзатем активировать virtualenv by:
$ source activate name_of_your_virtualenvа потом делать:
python --versionв оболочке, чтобы проверить, обновлена ли ваша версия.
можно назвать
virtualenvС версией python вы хотите. Например:python3 -m virtualenv venvили альтернативно непосредственно указать на ваш путь virtualenv. например, для windows:
c:\Python34\Scripts\virtualenv.exe venvи работает:
venv/bin/python Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>вы можете увидеть версию python, установленную в виртуальной среде
The
-pподход работает хорошо, но вы должны помнить, чтобы использовать его каждый раз. Если ваша цель-перейти на более новую версию Python в целом, это боль, а также может привести к ошибкам.другой вариант-установить переменную среды, которая делает то же самое, что и
-p. Установите это через ваш~/.bashrcфайл или везде, где вы управляете переменные среды для сеансов входа в систему:export VIRTUALENV_PYTHON=/path/to/desired/versionзатем
virtualenvбудет использовать это в любое время вы не указываете-pв командной строке.
на mac я использую pyenv и virtualenvwrapper. Мне пришлось создать новый virtualenv. Вам нужно домашнее пиво, которое я предполагаю, что вы установили, если вы находитесь на mac, но просто для удовольствия:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install pyenv pyenv install 2.7.10 pyenv global 2.7.10 export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}Я также сначала заморозил свои требования, чтобы я мог просто переустановить новый virtualenv с помощью:
pip install -r requirements.txt
еще проще, используя подстановку команд, чтобы найти python2 для вас:
virtualenv -p $(which python2) <path/to/new/virtualenv/>или при использовании virtualenvwrapper :
mkvirtualenv -p $(which python2) <env_name>
в подсистеме windows для linux:
создать среду для python3:
virtualenv --python=/usr/bin/python3 envактивировать его:
source env/bin/activate
эти две команды должны отлично работать для новичка
virtualenv -p python2 myenv(для python2)
virtualenv -p python3 myenv(для python3)
для Mac(High Sierra) установите virtualenv в python3 и создайте virtualenv для python2:
$ python3 -m virtualenv --python=python2 vp27 $ source vp27/bin/activate (vp27)$ python --version Python 2.7.14
это сработало для меня
sudo apt-get install python3-minimal virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
да, приведенные выше ответы верны и отлично работают в системах на базе Unix, таких как Linux & MAC OS X.
Я пытался создать virtualenv на вместо python2 & Python3 С помощью следующих команд.
здесь я использовал venv2 & venv3 как их зовут вместо python2 & Python3 соответственно.
вместо python2 "
MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2` Running virtualenv with interpreter /usr/local/bin/python2 New python executable in /Users/admin/venv2/bin/python Installing setuptools, pip, wheel...done. MacBook-Pro-2:~ admin$ MacBook-Pro-2:~ admin$ ls venv2/bin/ activate easy_install pip2.7 python2.7 activate.csh easy_install-2.7 python wheel activate.fish pip python-config activate_this.py pip2 python2 MacBook-Pro-2:~ admin$Python3"
MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3` Running virtualenv with interpreter /usr/local/bin/python3 Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6' New python executable in /Users/admin/venv3/bin/python3 Also creating executable in /Users/admin/venv3/bin/python Installing setuptools, pip, wheel...done. MacBook-Pro-2:~ admin$ MacBook-Pro-2:~ admin$ ls venv3/bin/ activate easy_install pip3.6 python3.6 activate.csh easy_install-3.6 python wheel activate.fish pip python-config activate_this.py pip3 python3 MacBook-Pro-2:~ admin$проверка мест установки Python
MacBook-Pro-2:~ admin$ which python2 /usr/local/bin/python2 MacBook-Pro-2:~ admin$ MacBook-Pro-2:~ admin$ which python3 /usr/local/bin/python3 MacBook-Pro-2:~ admin$
на windows:
py -3.4x32 -m venv venv34или
py -2.6.2 -m venv venv26использует
pyлаунчер который найдет правильный исполняемый файл python для вас (при условии, что он установлен).
Comments