Risposte:
Ecco le opzioni per 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) Quello che vuoi fare è installare Python in una directory che puoi scrivere anche tu.
Puoi seguire le istruzioni here
.
Per 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) Installa 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 il tuo pitone locale
virtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4) Attiva l'ambiente
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Verifica
(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
è un bashismo. L'equivalente POSIX è .
.
Pre-requisiti:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Installazione di virtualenv con Python2.6:
È possibile scaricare, creare e installare manualmente un'altra versione di Python in /usr/local
un'altra posizione.
Se è un'altra posizione diversa da /usr/local
, aggiungila al tuo PERCORSO.
Ricarica la tua shell per raccogliere il PERCORSO aggiornato.
Da questo punto in poi, dovresti essere in grado di chiamare i seguenti 2 binari python dalla tua shell python2.5
epython2.6
Crea una nuova istanza di virtualenv con python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Questa procedura installa Python2.7 ovunque ed elimina qualsiasi riferimento di percorso assoluto all'interno della tua env
cartella (gestito da virtualenv) . Anche virtualenv non è installato assolutamente.
Pertanto, in teoria, è possibile rilasciare la directory di livello superiore in un tarball, distribuire ed eseguire qualsiasi cosa configurata all'interno del tarball su un computer su cui non è installato Python (o eventuali dipendenze) .
Contattatemi per qualsiasi domanda. Questo è solo parte di un progetto in corso, più ampio che sto progettando. Ora, per la goccia ...
Configurare le cartelle di ambiente.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Ottieni Python-2.7.3 e virtualenv senza alcuna forma di installazione del sistema operativo root.
$ 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
Estrarre e installare Python-2.7.3 nella directory pyenv
. make clean
è facoltativo se lo stai facendo una seconda, terza, nona volta ...
$ 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 il tuo virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Correggi il link simbolico su python2.7 all'interno env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Correggi i restanti collegamenti simbolici di Python in env. Dovrai eliminare le directory simbolicamente collegate e ricrearle, come sopra. Inoltre, ecco la sintassi per forzare la creazione di collegamenti simbolici sul posto.
$ 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 ../../../
Test
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha.
L'approccio usuale è scaricare il sorgente e compilare e installare localmente (ma non direttamente in virtualenv), quindi creare un nuovo virtualenv usando quell'installazione Python locale. Su alcuni sistemi, potrebbe essere possibile scaricare e installare un pitone precompilato, piuttosto che compilare dal sorgente.
Ora un giorno, il modo più semplice per trovare una versione più aggiornata di Python è installarlo tramite conda in un ambiente conda.
Installa conda (potrebbe essere necessario un virtualenv per questo)
pip install conda
Sto aggiungendo questa risposta qui perché non è necessario il download manuale. conda
lo farà per te.
Ora crea un ambiente per la versione di Python che desideri. In questo esempio userò 3.5.2
, perché è l'ultima versione in questo momento in cui scrivo (agosto 2016).
conda create -n py35 python=3.5.2
Creerà un ambiente per conda per installare i pacchetti
Per attivare questo ambiente ( suppongo che Linux verifichi altrimenti i documenti conda ):
source activate py35
Ora installa ciò di cui hai bisogno tramite pip o conda nell'ambiente (conda ha un migliore supporto per pacchetti binari).
conda install <package_name>
Puoi usare Pyenv.
Esistono molte versioni diverse di anaconda, jython, pypy e così via ...
Installazione semplice come 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
...
Sebbene la domanda descriva specificamente l'installazione 2.6, vorrei aggiungere alcuni punti importanti alle eccellenti risposte sopra nel caso qualcuno dovesse imbattersi in questo. Per la cronaca, il mio caso era che stavo provando a installare 2.7 su una scatola Ubuntu 10.04.
Innanzitutto, la mia motivazione nei confronti dei metodi descritti in tutte le risposte qui è che l'installazione di Python dal ppa di deadsnake è stata un fallimento totale. Quindi costruire un Python locale è la strada da percorrere.
Avendolo provato, ho pensato che fare affidamento sull'installazione predefinita di pip (con sudo apt-get install pip
) sarebbe stata adeguata. Questo purtroppo è sbagliato. Si è scoperto che stavo ottenendo tutti i cortometraggi di problemi cattivi e alla fine non ero in grado di creare un virtualenv.
Pertanto, consiglio vivamente di installare pip localmente con wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Questa domanda correlata mi ha dato questo suggerimento.
Ora se questo non funziona, assicurati che libssl-dev
per Ubuntu o openssl-dev
per CentOS sia installato. Installali con apt-get
o yum
e poi ricostruisci Python (non è necessario rimuovere nulla se già installato, fallo in cima). get-pip
si lamenta di ciò, puoi verificarlo eseguendo import ssl
su una shell PY.
Ultimo, non dimenticare di dichiarare .local/bin
e Python locale per il percorso, verificare con which pip
e which python
.
Guida completa con Pyenv
Se pyenv non è installato, installarlo con pyenv-installer :
$ curl https://pyenv.run | bash
Per utilizzare qualsiasi versione personalizzata di Python, ad esempio 3.5.6
utilizzare quanto segue:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
No, ma puoi installare una build Python isolata (come ActivePython ) nella tua $HOME
directory.
Questo approccio è il più veloce e non richiede di compilare Python da soli.
(come bonus, puoi anche usare il gestore di pacchetti binari di ActiveState )
Non ho trovato la risposta adatta, quindi ecco la mia opinione, che si basa sulla risposta di @toszter, ma non utilizza il sistema Python (e potresti sapere, non è sempre una buona idea installare setuptools e virtualenv a livello di sistema quando si ha a che fare con molti Configurazioni 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"
Il trucco per rompere il problema dell'uovo di gallina qui è quello di rendere virtualenv senza setuptools prima, perché altrimenti fallisce (pip non può essere trovato). Potrebbe essere possibile installare pip / wheel direttamente, ma in qualche modo easy_install è stata la prima cosa che mi è venuta in mente. Inoltre, lo script può essere migliorato prendendo in considerazione versioni concrete.
NB. Usando xz nello script.
Prima di tutto, grazie DTing per la risposta fantastica. È praticamente perfetto.
Per coloro che soffrono di non avere accesso GCC nell'hosting condiviso, vai per ActivePython invece del normale pitone come ha menzionato Scott Stafford. Ecco i comandi per quello.
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
Ti chiederà il percorso della directory di Python. accedere
../../.localpython
Basta sostituire sopra come passaggio 1 nella risposta di DTing e proseguire con il passaggio 2. Si noti che l'URL del pacchetto ActivePython potrebbe cambiare con la nuova versione. Puoi sempre ottenere un nuovo URL da qui: http://www.activestate.com/activepython/downloads
In base all'URL è necessario modificare il nome del comando tar e cd in base al file ricevuto.
make clean
prima di fare./configure --prefix=/home/<user>/.localpython
effettivamentemake clean
restituito errore. 2.virtualenv name -p=/python/path
non ha funzionato invecevirtualenv name -p /python/path
ha funzionato. Presumo che sia fino alla versione virtualenv. Saluti!