Réponses:
Voici les options pour 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) Ce que vous voulez faire, c'est installer python dans un répertoire que vous pouvez également écrire.
Vous pouvez suivre les instructions here
.
Pour 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) Installez 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) Créez un virtualenv en utilisant votre 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) Activez l'environnement
cd ~/virtualenvs/py2.7/bin
source ./activate
5) Vérifier
(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
est un bashisme. L'équivalent POSIX est .
.
Conditions préalables:
sudo easy_install virtualenv
sudo pip install virtualenvwrapper
Installation de virtualenv avec Python2.6:
Vous pouvez télécharger, créer et installer manuellement une autre version de Python /usr/local
ou un autre emplacement.
S'il s'agit d'un autre emplacement que /usr/local
, ajoutez-le à votre PATH.
Rechargez votre shell pour récupérer le PATH mis à jour.
À partir de ce moment, vous devriez pouvoir appeler les 2 binaires python suivants à partir de votre shell python2.5
etpython2.6
Créez une nouvelle instance de virtualenv avec python2.6
:
mkvirtualenv --python=python2.6 yournewenv
Cette procédure installe Python2.7 n'importe où et élimine toute référence de chemin absolu dans votre env
dossier (géré par virtualenv) . Même virtualenv n'est pas installé absolument.
Ainsi, théoriquement, vous pouvez déposer le répertoire de niveau supérieur dans une archive tar, distribuer et exécuter tout ce qui est configuré dans l'archive tar sur une machine sur laquelle Python (ou aucune dépendance) n'est installé.
Contactez-moi pour toutes questions. C'est juste une partie d'un projet en cours et plus vaste que je suis en train de concevoir. Maintenant, pour la goutte ...
Configurez les dossiers d'environnement.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Obtenez Python-2.7.3 et virtualenv sans aucune forme d'installation de système d'exploitation racine.
$ 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
Extrayez et installez Python-2.7.3 dans le pyenv
répertoire. make clean
est facultatif si vous faites cela une 2ème, 3ème, Nème fois ...
$ 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
Créez votre virtualenv
$ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
Correction du lien symbolique vers python2.7 dans env/include/
$ ls -l env/include/
$ cd !$
$ rm python2.7
$ ln -s ../../pyenv/include/python2.7 python2.7
$ cd ../../
Corrigez les liens symboliques python restants dans env. Vous devrez supprimer les répertoires liés symboliquement et les recréer, comme ci-dessus. Aussi, voici la syntaxe pour forcer la création de lien symbolique sur place.
$ 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 ../../../
Tester
$ python --version
Python 2.7.1
$ source env/bin/activate
(env)
$ python --version
Python 2.7.3
Aloha.
L'approche habituelle consiste à télécharger la source, à construire et à installer localement (mais pas directement dans virtualenv), puis à créer une nouvelle virtualenv à l'aide de cette installation Python locale. Sur certains systèmes, il peut être possible de télécharger et d'installer un python prédéfini, plutôt que de construire à partir des sources.
Aujourd'hui, le moyen le plus simple que j'ai trouvé pour avoir une version plus mise à jour de Python est de l'installer via conda dans un environnement conda.
Installez conda (vous aurez peut-être besoin d'un virtualenv pour cela)
pip install conda
J'ajoute cette réponse ici car aucun téléchargement manuel n'est nécessaire. conda
fera cela pour vous.
Créez maintenant un environnement pour la version Python souhaitée. Dans cet exemple, je vais utiliser 3.5.2
, car il s'agit de la dernière version à l'heure actuelle (août 2016).
conda create -n py35 python=3.5.2
Créera un environnement pour que conda installe des packages
Pour activer cet environnement (je suppose que linux sinon, vérifiez les documents conda ):
source activate py35
Maintenant, installez ce dont vous avez besoin via pip ou conda dans l'environnement (conda a un meilleur support de paquet binaire).
conda install <package_name>
Vous pouvez utiliser pyenv.
Il existe de nombreuses versions différentes: anaconda, jython, pypy et ainsi de suite ...
Installation aussi simple que 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
...
Bien que la question décrit spécifiquement l'installation de la version 2.6, je voudrais ajouter quelques points importants aux excellentes réponses ci-dessus au cas où quelqu'un rencontrerait cela. Pour mémoire, mon cas était que j'essayais d'installer 2.7 sur une boîte ubuntu 10.04.
Tout d'abord, ma motivation envers les méthodes décrites dans toutes les réponses ici est que l'installation de Python à partir des ppa de deadsnake a été un échec total. Donc, construire un Python local est la voie à suivre.
Après avoir essayé, j'ai pensé que se fier à l'installation par défaut de pip (with sudo apt-get install pip
) serait suffisant. C'est malheureusement faux. Il s'est avéré que je recevais tous les courts métrages de problèmes désagréables et que finalement je ne pouvais pas créer une virtualenv.
Par conséquent, je recommande fortement d' installer pip localement avec wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Cette question connexe m'a donné cet indice.
Maintenant, si cela ne fonctionne pas, assurez-vous que libssl-dev
pour Ubuntu ou openssl-dev
pour CentOS est installé. Installez-les avec apt-get
ou yum
puis recréez Python (pas besoin de supprimer quoi que ce soit s'il est déjà installé, faites-le en haut). get-pip
se plaint de cela, vous pouvez le vérifier en exécutant import ssl
sur un shell py.
Enfin, n'oubliez pas de déclarer .local/bin
et local python à path, vérifiez avec which pip
et which python
.
Guide complet avec pyenv
Si pyenv n'est pas installé, installez-le avec pyenv-installer :
$ curl https://pyenv.run | bash
Pour utiliser n'importe quelle version de Python personnalisée, 3.5.6
utilisez par exemple ce qui suit:
pyenv install 3.5.6
pyenv virtualenv 3.5.6 name_of_your_env
pyenv activate name_of_your_env
Non, mais vous pouvez installer une version Python isolée (telle qu'ActivePython ) dans votre $HOME
répertoire.
Cette approche est la plus rapide et ne vous oblige pas à compiler vous-même Python.
(en prime, vous pouvez également utiliser le gestionnaire de paquets binaires d'ActiveState )
Je n'ai pas trouvé de réponse appropriée, voici donc mon point de vue, qui s'appuie sur la réponse @toszter, mais n'utilise pas le système Python (et vous le savez peut-être, ce n'est pas toujours une bonne idée d'installer setuptools et virtualenv au niveau du système lorsqu'il s'agit de nombreux Configurations 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"
L'astuce pour résoudre le problème de l'oeuf de poule ici est de créer d'abord virtualenv sans setuptools, car sinon, il échoue (pip ne peut pas être trouvé). Il est peut-être possible d'installer pip / wheel directement, mais en quelque sorte, easy_install a été la première chose qui m'est venue à l'esprit. En outre, le script peut être amélioré en factorisant des versions concrètes.
NB. Utilisation de xz dans le script.
Tout d'abord, merci DTing pour la réponse géniale. C'est à peu près parfait.
Pour ceux qui souffrent de ne pas avoir accès à GCC dans l'hébergement partagé, optez pour ActivePython au lieu de python normal comme Scott Stafford l'a mentionné. Voici les commandes pour cela.
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
Il vous demandera le chemin vers le répertoire python. Entrer
../../.localpython
Remplacez simplement ci-dessus par l'étape 1 dans la réponse de DTing et passez à l'étape 2 après cela. Veuillez noter que l'URL du package ActivePython peut changer avec la nouvelle version. Vous pouvez toujours obtenir une nouvelle URL à partir d'ici: http://www.activestate.com/activepython/downloads
En fonction de l'URL, vous devez modifier le nom de la commande tar et cd en fonction du fichier reçu.
make clean
avant de faire./configure --prefix=/home/<user>/.localpython
en faitmake clean
renvoyé une erreur. 2.virtualenv name -p=/python/path
n'a pas fonctionné à la placevirtualenv name -p /python/path
a fonctionné. Je suppose que c'est à la version virtualenv. à votre santé!