J'ai un compte partagé dans un hébergement Web sur lequel Python 2.4 est installé, mais mon code n'est pas compatible avec 2.4. Est-il possible d'installer Python 2.6 directement dans Virtualenv?
Remarque: je n’ai pas l’autorisation de l’installer sur le serveur partagé.
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 aussi écrire.
_ {Vous pouvez suivre les instructions here
.
Pour Python 2.7.1Python 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) Installer virtualenvvirtualenv 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éer un virtualenv en utilisant votre python localvirtualenv docs
mkdir /home/${USER}/virtualenvs
cd /home/${USER}/virtualenvs
~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7
4) Activer 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.
>>>
Conditions préalables:
Sudo easy_install virtualenv
Sudo pip install virtualenvwrapper
Installation de virtualenv avec Python2.6:
/usr/local
ou à un autre emplacement. /usr/local
, ajoutez-le à votre PATH. python2.5
et python2.6
Créez une nouvelle instance de virtualenv avec python2.6
:
mkvirtualenv --python=python2.6 yournewenv
J'utilise virtualenvwrapper et je ne veux pas modifier $ PATH, voici comment:
$ which python3
/usr/local/bin/python3
$ mkvirtualenv --python=/usr/local/bin/python3 env_name
Cette procédure installe Python2.7 n'importe où et élimine toutes les références de chemin absolues dans votre dossier env
(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, distribuer et exécuter tout ce qui est configuré dans l'archive sur une machine sur laquelle Python (ou aucune dépendance)} n'est installé.
Contactez-moi pour toutes questions. Cela fait simplement partie d'un projet plus vaste et en cours que je suis en train de concevoir. Maintenant, pour la baisse ...
Configurez les dossiers d'environnement.
$ mkdir env
$ mkdir pyenv
$ mkdir dep
Obtenez Python-2.7.3 et virtualenv sans toute 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 répertoire pyenv
. make clean
est facultatif si vous faites cela une 2e, 3e, niè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. En outre, voici la syntaxe pour forcer la création de liens symboliques 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 le code source, à construire et à installer localement (mais pas directement dans virtualenv), puis à créer un nouveau 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é-construit, plutôt que de le construire à partir du source.
Vous pouvez utiliser pyenv.
Il existe de nombreuses versions différentes: anaconda, jython, pypy, etc.
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
...
Aujourd'hui, la meilleure façon de disposer d'une version plus récente de Python consiste à 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
le fera pour vous.
Créez maintenant un environnement pour la version Python souhaitée. Dans cet exemple, je vais utiliser 3.5.2
, car c'est la dernière version en date de rédaction (août 2016).
conda create -n py35 python=3.5.2
Crée un environnement permettant à Conda d'installer des packages
Pour activer cet environnement (je suppose que linux sinon, vérifiez les conda docs ):
source activate py35
Maintenant, installez ce dont vous avez besoin via pip ou conda dans l’environnement (conda supporte mieux les paquets binaires).
conda install <package_name>
Bien que la question décrive 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 tomberait dessus. 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 pour les méthodes décrites dans toutes les réponses ici est que l’installation de Python à partir de ppa de deadsnake a été un échec total. Donc, construire un Python local est la voie à suivre.
Ayant essayé de le faire, je pensais que le recours à l'installation par défaut de pip (avec Sudo apt-get install pip
) serait adéquat. C'est malheureusement faux. Il s’est avéré que j’étais sous le feu des critiques et que je ne pouvais pas créer un environnement virtuel.
Par conséquent, je recommande fortement de installer le pip localement avec wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user
. Cette question liée 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 reconstruisez Python (nul besoin de supprimer quoi que ce soit s'il est déjà installé, faites-le en haut). get-pip
s'en plaint, vous pouvez le vérifier en exécutant import ssl
sur un shell py.
Enfin, n'oubliez pas de déclarer .local/bin
et le python local dans path, vérifiez avec which pip
et which python
.
Non, mais vous pouvez installer une construction Python isolée (telle que ActivePython ) dans votre répertoire $HOME
.
Cette approche est la plus rapide et ne vous oblige pas à vous compiler Python.
(en bonus, vous pouvez également utiliser le gestionnaire d'ActiveState gestionnaire de paquets binaires )
Je n'ai pas trouvé de réponse appropriée, alors voici ma conclusion, qui repose sur la réponse de @toszter, mais n'utilise pas le système Python (et vous savez peut-être que ce n'est pas toujours une bonne idée d'installer setuptools et virtualenv au niveau système lorsqu'il s'agit de nombreuses 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"
Le truc pour résoudre le problème poulet-œuf est de créer virtualenv sans setuptools d’abord, car il échouera sinon (pip ne peut pas être trouvé). Il est peut-être possible d’installer directement pip/wheel, mais d’une manière ou d’une autre, easy_install a été la première chose à laquelle je pensais. En outre, le script peut être amélioré en intégrant des versions concrètes.
NB Utiliser xz dans le script.
Tout d'abord, merci DTing pour cette réponse géniale. C'est à peu près parfait.
Pour ceux qui ne disposent pas d'accès GCC dans l'hébergement partagé, optez pour ActivePython au lieu du python normal, comme l'a mentionné Scott Stafford. 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 d'accès au répertoire python. Entrer
../../.localpython
Remplacez simplement l'étape 1 de la réponse de DTing ci-dessus et passez à l'étape 2 suivante. 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.