Respuestas:
Aquí están las opciones 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) Lo que desea hacer es instalar Python en un directorio que también pueda escribir.
Puedes seguir las instrucciones 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) Instalar 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) Crea un virtualenv usando tu 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) Activar el medio ambiente
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Verificar
(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
es un bashism. El equivalente POSIX es .
.
Prerrequisitos:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Instalación de virtualenv con Python2.6:
Puede descargar, compilar e instalar manualmente otra versión de Python en /usr/local
otra ubicación.
Si es otra ubicación que no sea /usr/local
, agréguela a su RUTA.
Vuelva a cargar su shell para recoger la RUTA actualizada.
A partir de este momento, debería poder llamar a los siguientes 2 binarios de Python desde su shell python2.5
ypython2.6
Cree una nueva instancia de virtualenv con python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Este procedimiento instala Python2.7 en cualquier lugar y elimina cualquier referencia de ruta absoluta dentro de su env
carpeta (administrada por virtualenv) . Incluso virtualenv no está instalado absolutamente.
Por lo tanto, teóricamente, puede colocar el directorio de nivel superior en un tarball, distribuir y ejecutar cualquier cosa configurada dentro del tarball en una máquina que no tiene Python (o ninguna dependencia) instalada.
Contácteme si tiene preguntas. Esto es solo parte de un proyecto en curso y más grande que estoy diseñando. Ahora, para la caída ...
Configurar carpetas de entorno.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Obtenga Python-2.7.3 y virtualenv sin ninguna forma de instalación del sistema operativo raíz.
$ 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
Extraiga e instale Python-2.7.3 en el pyenv
directorio. make clean
es opcional si está haciendo esto por segunda, tercera y 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
Crea tu virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Arregle el enlace simbólico a python2.7 dentro env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Repara los enlaces simbólicos de python restantes en env. Tendrá que eliminar los directorios vinculados simbólicamente y volver a crearlos, como se indicó anteriormente. Además, aquí está la sintaxis para forzar la creación de enlaces simbólicos en el lugar.
$ 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 ../../../
Prueba
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha
El enfoque habitual es descargar la fuente y construir e instalar localmente (pero no directamente en virtualenv), y luego crear un nuevo virtualenv usando esa instalación local de Python. En algunos sistemas, es posible descargar e instalar un pitón precompilado, en lugar de construir desde la fuente.
Hoy en día, la forma más fácil de encontrar una versión más actualizada de Python es instalarlo a través de conda en un entorno conda.
Instale conda (puede necesitar un virtualenv para esto)
pip install conda
Estoy agregando esta respuesta aquí porque no se necesita descarga manual. conda
Hará eso por ti.
Ahora cree un entorno para la versión de Python que desee. En este ejemplo lo usaré 3.5.2
, porque es la última versión en este momento de la escritura (agosto de 2016).
conda create -n py35 python=3.5.2
Creará un entorno para que conda instale paquetes
Para activar este entorno (supongo que Linux de lo contrario verifique los documentos de conda ):
source activate py35
Ahora instale lo que necesita a través de pip o conda en el entorno (conda tiene un mejor soporte de paquetes binarios).
conda install <package_name>
Puedes usar pyenv.
Hay muchas versiones diferentes de anaconda, jython, pypy, etc.
Instalación tan simple como 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
...
Aunque la pregunta describe específicamente la instalación de 2.6, me gustaría agregar algunos puntos importantes a las excelentes respuestas anteriores en caso de que alguien se encuentre con esto. Para el registro, mi caso fue que estaba tratando de instalar 2.7 en una caja ubuntu 10.04.
Primero, mi motivación hacia los métodos descritos en todas las respuestas aquí es que instalar Python desde el ppa de deadsnake ha sido un fracaso total. Así que construir un Python local es el camino a seguir.
Después de haberlo intentado, pensé en confiar en la instalación predeterminada de pip (con sudo apt-get install pip
) sería adecuado. Esto lamentablemente está mal. Resultó que estaba recibiendo todo tipo de problemas desagradables y eventualmente no podía crear un virtualenv.
Por lo tanto, recomiendo instalar pip localmente con wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Esta pregunta relacionada me dio esta pista.
Ahora, si esto no funciona, asegúrese de que esté instalado libssl-dev
Ubuntu o openssl-dev
CentOS. Instálelos con apt-get
o yum
y luego vuelva a compilar Python (no es necesario eliminar nada si ya está instalado, hágalo en la parte superior). get-pip
se queja de eso, puede verificarlo ejecutando import ssl
en un shell de py.
Por último, no olvides declarar .local/bin
y python local a la ruta, verifica con which pip
y which python
.
Guía completa con pyenv
Si pyenv no está instalado, instálelo con pyenv-installer :
$ curl https://pyenv.run | bash
Para usar cualquier versión personalizada de Python, por ejemplo, 3.5.6
use lo siguiente:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
No, pero puede instalar una compilación de Python aislada (como ActivePython ) en su $HOME
directorio.
Este enfoque es el más rápido. y no requiere que compiles Python tú mismo.
(como beneficio adicional, también puede usar el administrador de paquetes binarios de ActiveState )
No he encontrado una respuesta adecuada, así que aquí va mi opinión, que se basa en la respuesta @toszter, pero no utiliza el sistema Python (y puede que sepa, no siempre es una buena idea instalar setuptools y virtualenv a nivel del sistema cuando se trata con muchos Configuraciones de 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"
El truco para romper el problema del huevo de gallina aquí es hacer virtualenv sin las herramientas de configuración primero, porque de lo contrario falla (pip no se puede encontrar). Es posible instalar pip / wheel directamente, pero de alguna manera easy_install fue lo primero que se me ocurrió. Además, el script puede mejorarse factorizando versiones concretas.
NÓTESE BIEN. Usando xz en el script.
En primer lugar, gracias DTing por una respuesta increíble. Es casi perfecto.
Para aquellos que sufren de no tener acceso a GCC en alojamiento compartido, ve a ActivePython en lugar de Python normal como Scott Stafford mencionó. Aquí están los comandos para eso.
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
Le preguntará la ruta al directorio de Python. Entrar
../../.localpython
Simplemente reemplace arriba como Paso 1 en la respuesta de DTing y continúe con el Paso 2 después de eso. Tenga en cuenta que la URL del paquete ActivePython puede cambiar con una nueva versión. Siempre puede obtener una nueva URL desde aquí: http://www.activestate.com/activepython/downloads
Según la URL, debe cambiar el nombre del comando tar y cd según el archivo recibido.
make clean
antes de hacerlo,./configure --prefix=/home/<user>/.localpython
de hecho,make clean
devolvió el error. 2.virtualenv name -p=/python/path
no funcionó, en cambiovirtualenv name -p /python/path
funcionó. Supongo que se debe a la versión virtualenv. ¡salud!