Pergunta

Eu tenho um sistema Debian atualmente rodando com python 2.5.4.Instalei o virtualenv corretamente, tudo está funcionando bem.Existe a possibilidade de usar um virtualenv com uma versão diferente do Python?

Compilei o Python 2.6.2 e gostaria de usá-lo com algum virtualenv.É suficiente sobrescrever o arquivo binário?Ou tenho que mudar alguma coisa em relação às bibliotecas?

Foi útil?

Solução

Basta usar o --python (ou curto -p) Opção Ao criar sua instância VirtualEnv para especificar o executável do Python que você deseja usar, por exemplo:

virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>

NB para Python 3.3 ou mais tarde, consulte o Aelfinn's responda abaixo de.

Outras dicas

ATUALIZAR: Para python3.6, o abaixo pyvenv O script está preguiçoso. Em vez de, Os documentos de Python sugerem Criando o ambiente virtual com o seguinte comando:

python3 -m venv <myenvname>

Para Python3 (3.3+), use o método acima ou o roteiro pyvenv comando.

pyvenv /path/to/new/virtual/environment

Observe isso venv Não permite criar o VirtualEnv com outras versões do Python. Para isso, instale e use o virtualenv pacote.

Essas são etapas quando você está no ambiente de hospedagem compartilhada e precisa instalar e complicar o Python a partir da fonte e criar Venv a partir da sua versão Python. Para o Python 2.7.9, você faria algo nesse sentido:

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 install

Env virtual

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   

Naturalmente, isso pode ser aplicável a qualquer situação em que você queira replicar o ambiente exato em que trabalha e implanta.

virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

Existe uma maneira mais fácil,

virtualenv venv --python=python2.7

Graças a um comentário, isso só funciona se você tiver python2.7 instalado no nível do sistema (por exemplo, /usr/bin/python2.7).

Caso contrário, se você estiver usando o Homebrew, poderá usar o caminho para fornecer o que deseja.

virtualenv venv --python=/usr/local/bin/python

Você pode encontrar o caminho para a instalação do Python com

which python

Isso também funcionará com o Python 3.

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

Por fim, condensando -se a:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

Sob o Windows para mim, isso funciona:

virtualenv --python=c:\Python25\python.exe envname

sem o python.exe Eu obtive WindowsError: [Error 5] Access is denied Eu tenho python2.7.1 instalado com o VirtualEnv 1.6.1, e eu queria o Python 2.5.2.

MacOSX 10.6.8 (Snow Leopard):

1) Quando você faz pip install virtualenv, o comando pip está associado a uma de suas versões python e virtualenv é instalado nessa versão do python.Você pode fazer

 $ which pip   

para ver qual versão do python é essa.Se você vir algo como:

 $ which pip
 /usr/local/bin/pip

então faça:

$ 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

Você pode ver a versão do python na saída.

Por padrão, essa será a versão do python usada para qualquer novo ambiente que você criar.No entanto, você pode especificar qualquer versão do python instalada no seu computador para usar dentro de um novo ambiente com o -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 Criará uma pasta no diretório atual que conterá os arquivos executáveis ​​do Python e uma cópia do comando pip [comando] que você pode usar para instalar outros pacotes.

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv apenas copia o python de um local no seu computador para o diretório my_env/bin/ recém-criado.

2) O sistema python está em /usr/bin, enquanto as várias versões do python que instalei foram, por padrão, instaladas em:

 /usr/local/bin

3) Os vários pythons que instalei têm nomes como python2.7 ou python3.2, e posso usar esses nomes em vez de caminhos completos.

========VIRTUALENVWRAPPER=========

1) Tive alguns problemas para fazer o virtualenvwrapper funcionar.Foi isso que acabei colocando ~/.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.sh

2) O -p option funciona de maneira diferente com o virtualenvwrapper:Tenho que especificar o caminho completo para o interpretador python a ser usado no novo ambiente (quando não quiser usar a versão padrão do 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. 

Ao contrário do virtualenv, o virtualenvwrapper criará o ambiente no local especificado pela variável de ambiente $WORKON_HOME.Isso mantém todos os seus ambientes em um só lugar.

Suponha que você atualmente tenha o Python 2.7 instalado no seu VirtualEnv. Mas quero usar python3.2, Você teria que atualizar isso com:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

Em seguida, ative o seu virtualenv por:

$ source activate name_of_your_virtualenv

E então faça: python --version no shell para verificar se sua versão agora está atualizada.

Esses dois comandos devem funcionar bem.

virtualenv -p python2 myenv (Para python2)

virtualenv -p python3 myenv (Para python3)

Você pode ligar virtualenv Com a versão python que você deseja. Por exemplo:

python3 -m virtualenv venv

Ou, alternativamente, aponte diretamente para o seu caminho VirtualEnv. por exemplo, para Windows:

c:\Python34\Scripts\virtualenv.exe venv

E correndo:

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.
>>>

Você pode ver a versão Python instalada em ambiente virtual

O -p abordagem funciona bem, mas você deve se lembrar de usá-la sempre.Se o seu objetivo é mudar para uma versão mais recente do Python em geral, isso é uma dor e também pode levar a erros.

Sua outra opção é definir uma variável de ambiente que faça a mesma coisa que -p.Defina isso através do seu ~/.bashrc arquivo ou onde quer que você gerencie variáveis ​​de ambiente para suas sessões de login:

export VIRTUALENV_PYTHON=/path/to/desired/version

Então virtualenv usará isso sempre que você não especificar -p na linha de comando.

Para Mac (High Sierra), instale o VirtualEnv no Python3 e crie um VirtualEnv para Python2:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

Ainda mais fácil, usando a substituição de comando para encontrar o Python2 para você:

virtualenv -p $(which python2) <path/to/new/virtualenv/>

Ou ao usar o VirtualEnvWrapper:

mkvirtualenv -p $(which python2) <env_name>

No Mac, eu uso Pyenv e VirtualEnvwrapper. Eu tive que criar um novo VirtualEnv. Você precisa de homebrew que eu assumirei que você instalou se estiver em um Mac, mas apenas por diversão:

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}

Eu também congelei meus requisitos primeiro para que eu pudesse simplesmente reinstalar no novo VirtualEnv com:

pip install -r requirements.txt

No Subsistema do Windows para Linux:

  1. Crie ambiente para Python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. Ative isso:

    source env/bin/activate
    

Sim, as respostas acima estão corretas e funcionam bem em sistemas baseados em Unix, como Linux & MAC OS X.

Eu tentei criar virtualenv por Python2 & Python3 com os seguintes comandos.

Aqui eu usei Venv2 & Venv3 como seus nomes para Python2 & Python3 respectivamente.

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$ 

Verificando locais de instalação do 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$ 

Funcionou para mim

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

No Windows:

py -3.4x32 -m venv venv34

ou

py -2.6.2 -m venv venv26

Isso usa o py lançador que encontrará o executável do Python certo para você (supondo que você o tenha instalado).

virtualenv -p python3 myenv

Link para criar o VirtualEnv

Para os sistemas Debian (Debian 9) em 2019, descobri uma solução simples que pode resolver o problema de dentro do ambiente virtual.

Suponha que o ambiente virtual tenha sido criado via:

python3.7 -m venv myenv

mas só tem versões de python2 e python2.7, e você precisa dos recursos recentes do Python3.7.

Então, simplesmente executando o comando:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

Adicionará pacotes Python3.7 se eles já estiverem disponíveis no seu sistema.

Este foi um bug com o VirtualEnv. Apenas atualizar seu pip deve ser a correção.

pip install --upgrade virtualenv

Funcionou para mim no Windows com a instalação do Python 2:

  1. Etapa 1: Instale a versão Python 3.
  2. Etapa 2: crie uma pasta Env para o ambiente virtual.
  3. Etapa 3: C: python37 python -m venv c: path to Env.

Foi assim que criei o ambiente virtual do Python 3 na minha instalação existente do Python 2.

eu uso pyenv Para gerenciar minha versão Python.

pyenv install 3.7.3
pyenv local 3.7.3

Verifique sua versão Python:

$ python --version
Python 3.7.3

Criar o ambiente virtual com Venv:

python -m venv .

Em seguida, ative o ambiente virtual:

source bin/activate

Verifique sua versão Python:

$ python --version
Python 3.7.3

Pode ser necessário remover o ambiente virtual anterior

rm -rf bin

Você pode fazer isso fazendo isso:

virtualenv -p python3 .

Sim, você só precisa instalar a outra versão do Python e definir a localização da sua outra versão do Python em seu comando como:

Virtualenv/Home/Payroll/Documents/Env -p/usr/bin/python3

Aqui está o Stepbystep como criar o ambiente virtual na pasta de código do Visual Studio: Eu usei PowerShell (modo administrador):
1. Eu crio uma pasta VScode - "D: code_python_ve" onde eu quero criar um ambiente virtual.
2. Em seguida, digito o comando - "pip3 instalar virtualenv". (D: code_python_ve> pip3 Instale o virtualenv) 3. D: code_python_ve> python3 -m venv Project_env
4. D: code_python_ve> Project_env scripts ativate.bat
5. D: code_python_ve> ls - Isso listará um novo diretório "Project_env".
6. D: code_python_ve> código. Isso iniciará o código do Visual Studio. Verifique se o comando é (código.).
7. Create Launch.jason com o seguinte conteúdo:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "python",
            "request": "launch",
            "name": "Python: Current File (Integrated Terminal 1)",
            "program": "${file}"
        },
        {
            "name": "Python: Current File (Integrated Terminal 2)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
    ]
}

(Pesquise como ir para a janela depuração e adicione uma nova configuração no código vs).

  1. Pressione F1 no código do Visual Studio e o comando palete abrirá - selecione Intypreter Python e selecione o Project_env do ambiente virtual.
  2. Adicionar arquivo test.py com uma instrução print ("Hello World").
  3. Execute este programa.
  4. No Terminal de Código do Visual Studio -
    (Project_env) D: code_python_ve> python -m pip install -upgrade
    Eu espero que isso ajude.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top