Respostas:
Aqui estão as opções para virtualenv
$ virtualenv
You must provide a DEST_DIR
Usage: virtualenv [OPTIONS] DEST_DIR
Options:
--version show program's version number and exit.
-h, --help show this help message and exit.
-v, --verbose Increase verbosity.
-q, --quiet Decrease verbosity.
-p PYTHON_EXE, --python=PYTHON_EXE
The Python interpreter to use, e.g.,
--python=python2.5 will use the python2.5 interpreter
to create the new environment. The default is the
interpreter that virtualenv was installed with
(/usr/bin/python)
--clear Clear out the non-root install and start from scratch
--no-site-packages Don't give access to the global site-packages dir to
the virtual environment
--unzip-setuptools Unzip Setuptools or Distribute when installing it
--relocatable Make an EXISTING virtualenv environment relocatable.
This fixes up scripts and makes all .pth files
relative
--distribute Use Distribute instead of Setuptools. Set environ
variable VIRTUALENV_USE_DISTRIBUTE to make it the
default
--prompt==PROMPT Provides an alternative prompt prefix for this
environment
1) O que você quer fazer é instalar o python em um diretório que você também possa escrever.
Você pode seguir as instruções here
.
Para Python 2.7.1
Python source
mkdir ~/src
mkdir ~/.localpython
cd ~/src
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar -zxvf Python-2.7.1.tgz
cd Python-2.7.1
make clean
./configure --prefix=/home/${USER}/.localpython
make
make install
2) Instale o virtualenv
virtualenv source
cd ~/src
wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.5.2.tar.gz#md5=fbcefbd8520bb64bc24a560c6019a73c
tar -zxvf virtualenv-1.5.2.tar.gz
cd virtualenv-1.5.2/
~/.localpython/bin/python setup.py install
3) Crie um virtualenv usando seu python local
virtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4) Ative o ambiente
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Cheque
(py2.7)$ python
Python 2.7.1 (r271:86832, Mar 31 2011, 15:31:37)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(py2.7)$ deactivate
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
curl gcc build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdm-dev libbz2-dev libc6-dev libsqlite3-dev tk-dev
source
é um basismo. O equivalente POSIX é .
.
Pré-requisitos:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Instalando o virtualenv com Python2.6:
Você pode baixar, criar e instalar manualmente outra versão do Python em /usr/local
ou em outro local.
Se for outro local que não seja /usr/local
, adicione-o ao seu PATH.
Recarregue seu shell para pegar o PATH atualizado.
A partir deste ponto, você poderá chamar os 2 binários python a seguir no seu shell python2.5
epython2.6
Crie uma nova instância do virtualenv com python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Este procedimento instala o Python2.7 em qualquer lugar e elimina todas as referências de caminho absolutas na sua env
pasta (gerenciadas pelo virtualenv) . Mesmo o virtualenv não está instalado absolutamente.
Assim, teoricamente, você pode soltar o diretório de nível superior em um tarball, distribuir e executar qualquer coisa configurada dentro do tarball em uma máquina que não possui o Python (ou nenhuma dependência) instalado.
Entre em contato comigo com qualquer dúvida. Isso é apenas parte de um projeto maior e em andamento que estou criando. Agora, para a queda ...
Configure pastas do ambiente.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Obtenha o Python-2.7.3 e o virtualenv sem qualquer forma de instalação do SO raiz.
$ cd dep
$ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
$ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
Extraia e instale o Python-2.7.3 no pyenv
diretório make clean
é opcional se você estiver fazendo isso uma segunda, terceira e enésima vez ...
$ tar -xzvf Python-2.7.3.tgz
$ cd Python-2.7.3
$ make clean
$ ./configure --prefix=/path/to/pyenv
$ make && make install
$ cd ../../
$ ls
dep env pyenv
Crie seu virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Corrija o link simbólico para python2.7 dentro env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Corrija os links simbólicos restantes do python no env. Você precisará excluir os diretórios simbolicamente vinculados e recriá-los, como acima. Além disso, aqui está a sintaxe para forçar a criação de links simbólicos no local.
$ ls -l env/lib/python2.7/
$ cd !$
$ ln -sf ../../../pyenv/lib/python2.7/UserDict.py UserDict.py
[...repeat until all symbolic links are relative...]
$ cd ../../../
Teste
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha.
A abordagem usual é baixar o código-fonte, construir e instalar localmente (mas não diretamente no virtualenv) e, em seguida, criar um novo virtualenv usando essa instalação local do Python. Em alguns sistemas, pode ser possível baixar e instalar um python pré-construído, em vez de criar a partir do código-fonte.
Hoje em dia, a maneira mais fácil de encontrar uma versão mais atualizada do Python é instalá-lo via conda em um ambiente conda.
Instale o conda (você pode precisar de um virtualenv para isso)
pip install conda
Estou adicionando esta resposta aqui porque nenhum download manual é necessário. conda
fará isso por você.
Agora crie um ambiente para a versão Python desejada. Neste exemplo, usarei 3.5.2
, porque é a versão mais recente no momento da redação (agosto de 2016).
conda create -n py35 python=3.5.2
Criará um ambiente para o conda instalar pacotes
Para ativar esse ambiente (estou assumindo que o linux verifique os documentos da conda ):
source activate py35
Agora instale o que você precisa via pip ou conda no ambiente (o conda possui melhor suporte ao pacote binário).
conda install <package_name>
Você pode usar pyenv.
Existem muitas versões diferentes anaconda, jython, pypy e assim por diante ...
Instalação tão simples quanto pyenv install 3.2.6
pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.6.6
...
Embora a pergunta descreva especificamente a instalação do 2.6, eu gostaria de adicionar alguns pontos importantes às excelentes respostas acima, caso alguém se depare com isso. Para constar, meu caso foi que eu estava tentando instalar o 2.7 em uma caixa do ubuntu 10.04.
Primeiro, minha motivação para os métodos descritos em todas as respostas aqui é que a instalação do Python a partir do ppa do deadsnake foi uma falha total. Portanto, construir um Python local é o caminho a percorrer.
Tendo tentado isso, pensei que confiar na instalação padrão do pip (with sudo apt-get install pip
) seria adequado. Infelizmente isso está errado. Aconteceu que eu estava recebendo todos os curtos problemas sórdidos e, eventualmente, não conseguia criar um virtualenv.
Portanto, eu recomendo instalar o pip localmente com wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Essa questão relacionada me deu essa dica.
Agora, se isso não funcionar, verifique se o libssl-dev
Ubuntu ou o openssl-dev
CentOS está instalado. Instale-os com apt-get
ou yum
e, em seguida, recrie o Python (não é necessário remover nada, se já estiver instalado, faça-o na parte superior). get-pip
se queixa disso, você pode verificá-lo executando import ssl
em um shell py.
Por fim, não se esqueça de declarar .local/bin
o python local e o caminho, verifique com which pip
e which python
.
Guia completo com pyenv
Se o pyenv não estiver instalado, instale-o com o pyenv-installer :
$ curl https://pyenv.run | bash
Para usar qualquer versão python personalizada, por exemplo, 3.5.6
use o seguinte:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
Não, mas você pode instalar uma compilação Python isolada (como ActivePython ) no seu $HOME
diretório.
Essa abordagem é a mais rápida e não exige que você compile o Python por conta própria.
(como bônus, você também pode usar o gerenciador de pacotes binários do ActiveState )
Eu não encontrei uma resposta adequada, então aqui está minha opinião, que se baseia na resposta do @toszter, mas não usa o Python do sistema (e você deve saber, nem sempre é uma boa ideia instalar o setuptools e o virtualenv no nível do sistema ao lidar com muitos Configurações do Python):
#!/bin/sh
mkdir python_ve
cd python_ve
MYROOT=`pwd`
mkdir env pyenv dep
cd ${MYROOT}/dep
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-15.2.tar.gz#md5=a9028a9794fc7ae02320d32e2d7e12ee
wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
xz -d Python-2.7.9.tar.xz
cd ${MYROOT}/pyenv
tar xf ../dep/Python-2.7.9.tar
cd Python-2.7.9
./configure --prefix=${MYROOT}/pyenv && make -j 4 && make install
cd ${MYROOT}/pyenv
tar xzf ../dep/setuptools-15.2.tar.gz
cd ${MYROOT}
pyenv/bin/python dep/virtualenv.py --no-setuptools --python=${MYROOT}/pyenv/bin/python --verbose env
env/bin/python pyenv/setuptools-15.2/setup.py install
env/bin/easy_install pip
echo "virtualenv in ${MYROOT}/env"
O truque para resolver o problema do ovo de galinha aqui é tornar o virtualenv sem o setuptools primeiro, porque, caso contrário, falha (o pip não pode ser encontrado). Pode ser possível instalar o pip / wheel diretamente, mas de alguma forma o easy_install foi a primeira coisa que me veio à mente. Além disso, o script pode ser aprimorado considerando as versões concretas.
NB. Usando xz no script.
Primeiro de tudo, obrigado DTing pela resposta incrível. É praticamente perfeito.
Para aqueles que sofrem de não ter acesso ao GCC em hospedagem compartilhada, vá para o ActivePython, em vez do python normal, como Scott Stafford mencionou. Aqui estão os comandos para isso.
wget http://downloads.activestate.com/ActivePython/releases/2.7.13.2713/ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz
tar -zxvf ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz
cd ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785
./install.sh
Ele solicitará o caminho do diretório python. Entrar
../../.localpython
Apenas substitua acima como Etapa 1 na resposta da DTing e prossiga com a Etapa 2 depois disso. Observe que o URL do pacote ActivePython pode mudar com a nova versão. Você sempre pode obter um novo URL aqui: http://www.activestate.com/activepython/downloads
Com base na URL, você precisa alterar o nome do comando tar e cd com base no arquivo recebido.
make clean
antes de fazer./configure --prefix=/home/<user>/.localpython
de fatomake clean
retornou erro. 2.virtualenv name -p=/python/path
não funcionou em vez dissovirtualenv name -p /python/path
funcionou. Presumo que seja a versão virtualenv. Felicidades!