Quelle est la bonne façon d'installer pip, virtualenv et distribuer pour Python?

247

Question courte

Contexte

Dans ma réponse à la question SO 4314376 , j'ai recommandé d'utiliser ez_setupafin que vous puissiez ensuite installer pipet virtualenvcomme suit:

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

À l'origine, j'ai tiré ces instructions du blog de Jesse Noller. Vous voulez donc utiliser Python sur Mac? . J'aime l'idée de conserver un répertoire global de packages de site propre, donc les seuls autres packages que j'installe sont virtualenvwrapperet distribute. (J'ai récemment ajouté distributeà ma boîte à outils à cause de cette annonce de service public Python . Pour installer ces deux packages, j'ai utilisé:

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

Plus de setuptools et easy_install

Pour vraiment suivre cette annonce de service public Python , sur une nouvelle installation Python, je ferais ce qui suit:

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

Réprimande de glyphe

Dans un commentaire sur ma réponse à la question SO 4314376 , l'utilisateur SO Glyph a déclaré:

NON. JAMAIS faire sudo python setup.py installquoi que ce soit. Écrivez un ~ / .pydistutils.cfg qui place votre installation pip dans ~ / .local ou quelque chose. En particulier, les fichiers nommés ez_setup.pyont tendance à aspirer les nouvelles versions de choses comme setuptools et easy_install, ce qui peut potentiellement casser d'autres choses sur votre système d'exploitation.

Retour à la courte question

Donc , la réponse de Glyphe me conduit à ma question initiale:

Matthew Rankin
la source
Matthew, je sais que ce fil est plutôt ancien. Mais y a-t-il quelque chose de nouveau sur ce front? Est-ce toujours une mauvaise idée de faire python distribute_setup.pysuivi de easy_install pipet virtualenv --distribute venv? (voir python-guide.readthedocs.org/en/latest/starting/install/… ), et si oui, pourquoi?
Amelio Vazquez-Reina
2
Quel est le problème avec sudo apt-get install python-{pip,virtualenv}???
MestreLion
1
Oui, en général, les packages plus anciens mais compatibles conviennent bien lorsque les versions mineures n'ont pas d'importance pour vous, mais vous avez spécifiquement demandé "ce qui ne va pas" et j'essaie d'obtenir mon badge de pédant.
2
Pour votre information, plusieurs liens dans cette question sont maintenant obsolètes / cassé - Je suis actuellement (ne peut pas) voir ceux à pip, virtualenvet le Python PSA.
Chris Sprague
1
http://python-distribute.org/distribute_setup.pyredirige vers 404 :(
gigue

Réponses:

173

Vous pouvez le faire sans rien installer dans python lui-même.

Vous n'avez pas besoin de sudo ni de privilèges.

Vous n'avez pas besoin de modifier de fichiers.

Installez virtualenv dans un environnement virtuel d'amorçage. Utilisez cet environnement virtuel pour en créer davantage. Étant donné que virtualenv est fourni avec pip et distribue, vous obtenez tout d'une seule installation.

  1. Télécharger virtualenv:
  2. Décompressez l'archive source
  3. Utilisez l'archive tar non compressée pour créer un environnement virtuel propre. Cet environnement virtuel sera utilisé pour "bootstrap" les autres. Tous vos environnements virtuels contiendront automatiquement pip et distribuer.
  4. À l'aide de pip, installez virtualenv dans cet environnement d'amorçage.
  5. Utilisez cet environnement d'amorçage pour en créer plus!

Voici un exemple en bash:

# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv

# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz

Vous pouvez maintenant utiliser votre environnement "bootstrap" pour en créer plus:

# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2

Devenir fou!

Remarque

Cela suppose que vous n'utilisez pas une version vraiment ancienne de virtualenv. Les anciennes versions nécessitaient les drapeaux --no-site-packges(et selon la version de Python, --distribute). Vous pouvez maintenant créer votre environnement d'amorçage avec juste python virtualenv.py path-to-bootstrapou python3 virtualenv.py path-to-bootstrap.

Walker Hale IV
la source
13
C'est fastidieux uniquement parce qu'il est très générique, un simple téléchargement, untar puis python virtualenv.py TARGET_DIRECTORYfait la même chose.
Sebastian Blask
3
C'est génial. Je l'ai adapté pour répondre à ma question plus spécifique sur l'installation de virtualenv sur plusieurs versions de Python indépendamment des packages système - stackoverflow.com/questions/6812207/… - fonctionne parfaitement.
david.libremone
6
note: les virtualenvoptions '--no-site-packages --distribute' actuelles n'ont pas besoin. L'inverse --system-site-packagespourrait être nécessaire
jfs
1
Vous pouvez obtenir le dernier tarball stable avec cette commande:curl -Lo virtualenv-tmp.tar.gz 'https://github.com/pypa/virtualenv/tarball/master'
Bohr
1
Où installez-vous virtualenvwrapper? Les documents préviennent spécifiquement de ne pas l'installer dans un virtualenv (bien que cela semble fonctionner ).
Aryeh Leib Taurog
21

Je pense que Glyph signifie faire quelque chose comme ça:

  1. Créez un répertoire ~/.local, s'il n'existe pas déjà.
  2. Dans votre ~/.bashrc, assurez-vous que ~/.local/binc'est allumé PATHet que ~/.localc'est allumé PYTHONPATH.
  3. Créez un fichier ~/.pydistutils.cfgqui contient

    [install]
    prefix=~/.local

    Il s'agit d'un fichier au format ConfigParser standard.

  4. Téléchargez distribute_setup.py et exécutez python distribute_setup.py(non sudo). S'il se plaint d'un site-packagesrépertoire inexistant , créez-le manuellement:

    mkdir -p ~ / .local / lib / python2.7 / site-packages /

  5. Exécutez which easy_installpour vérifier qu'il provient~/.local/bin

  6. Courir pip install virtualenv
  7. Courir pip install virtualenvwrapper
  8. Créer un dossier contenant un env virtuel, par exemple ~/.virtualenvs
  9. En ~/.bashrcplus

    export WORKON_HOME
    source ~/.local/bin/virtualenvwrapper.sh

C'est tout, aucune utilisation du sudotout et votre environnement Python est dedans, ~/.localcomplètement séparé du Python du système d'exploitation. Avis de non-responsabilité: Je ne suis pas sûr de la compatibilité virtualenvwrapperde ce scénario - je n'ai pas pu le tester sur mon système :-)

Vinay Sajip
la source
2
~ / .Local est-il un nom stupide? Et si Ruby veut faire de même? Peut-être que ~ / .python27 serait mieux?
Jonathan Hartley
1
Juste une note, j'ai juste essayé la même chose sous Windows et j'ai dû ajouter à la fois le dossier local (appelé "local" par exemple) et "local \ Lib \ site-packages" à PYTHONPATH afin de réussir à exécuter distribuer_setup.py.
technomalogical
1
Un dernier problème avec cette approche: virtualenv est incompatible avec l'utilisation du fichier .pydistutils.cfg. Voir github.com/pypa/virtualenv/issues/88
Dan
3
Je pense qu'il devrait y avoir easy_install pipentre les étapes 5 et 6.
SiggyF
5
Le truc ~ / .local vient du PEP 370.
Éric Araujo
16

Si vous suivez les étapes conseillées dans plusieurs tutoriels que j'ai liés dans cette réponse , vous pouvez obtenir l'effet souhaité sans les étapes "manuelles" quelque peu compliquées dans les réponses de Walker et Vinay. Si vous êtes sur Ubuntu:

sudo apt-get install python-pip python-dev

L'équivalent est obtenu sous OS X en utilisant homebrew pour installer python (plus de détails ici ).

brew install python

Une fois pipinstallé, vous pouvez l'utiliser pour obtenir les packages restants (vous pouvez omettre sudodans OS X, car vous utilisez votre installation locale de python).

sudo pip install virtualenvwrapper

(ce sont les seuls packages dont vous avez besoin installés dans le monde et je doute qu'il soit en conflit avec quoi que ce soit au niveau du système du système d'exploitation. Si vous voulez être super sûr, vous pouvez conserver les versions de la distribution sudo apt-get install virtualenvwrapper)

Remarque: dans Ubuntu 14.04 je reçois quelques erreurs avec l'installation de pip , donc j'utilise pip3 install virtualenv virtualenvwrapperet j'ajoute VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3à mon .bashrc/.zshrcfichier.

Vous ajoutez ensuite à votre .bashrcfichier

export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh

et l'approvisionner

. ~/.bashrc

C'est fondamentalement ça. Maintenant, la seule décision est de savoir si vous voulez créer un virtualenv pour inclure des packages au niveau du système

mkvirtualenv --system-site-packages foo

là où vos packages système existants n'ont pas besoin d'être réinstallés, ils sont liés aux versions de l'interpréteur système. Remarque: vous pouvez toujours installer de nouveaux packages et mettre à niveau les packages inclus à partir du système existants sans sudo - je l'ai testé et cela fonctionne sans interruption de l'interpréteur système.

kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0

L'alternative, si vous voulez un environnement complètement séparé, est

mkvirtualenv --no-site-packages bar

ou étant donné qu'il s'agit de l'option par défaut, simplement

mkvirtualenv bar

Le résultat est que vous avez un nouveau virtualenv où vous pouvez installer librement et sans problème vos packages préférés

pip install flask
metakermit
la source
Cela n'installe-t-il pas à la fois setuptools et distribue-t-il? Et cela ne casse-t-il pas des packages comme Tkinter et pyopencl qui n'aiment pas setuptools?
plaques de cuisson
La définition de WORKON_HOME sur null dans bashrc force-t-elle venvwrapper à utiliser quelque chose de raisonnable export WORKON_HOME="$HOME/.virtualenvs"?
plaques de cuisson
Eh bien, il installe tout ce dont votre gestionnaire de paquets dit que pip dépend. Actuellement, c'est setuptools dans Ubuntu et OS X ( brew install pythontire pip + setuptools). Cette approche fonctionne bien pour moi. De plus, se concentrer sur pip semble également être la voie future dans le packaging Python.
metakermit
1
WORKON_HOMEpar défaut ~/.virtualenvs, oui. Il y a une ligne dans /usr/local/bin/virtualenvwrapper.shcet ensemble workon_home_dir="$HOME/.virtualenvs" if [ "$workon_home_dir" = "" ].
metakermit
Je l'ai. Merci. Votre approche simple a très bien fonctionné pour moi sur Ubuntu 12.04 lorsque vous installez des modules qui sont difficiles à utiliser pour distribuer (pyopencl). L'astuce pour moi était de suivre votre pip install virtualenv virtualenv-wrapperligne avec pip install --upgrade distributele virtualenv activé dans lequel j'ai ensuite installé pyopencl. J'ai également ajouté export PROJECT_HOME="$HOME/src"à mon bashrc pour activer l' mkprojectoutil cool venv.
plaques de cuisson
12

Python 3.4 et versions ultérieures

Python 3.3 ajoute le module venv et Python 3.4 ajoute le module assurepip . Cela rend le bootstrap pip aussi simple que:

python -m assurepip

Peut-être précédé d'un appel à venvle faire dans un environnement virtuel.

Le pip garanti est décrit dans PEP 453 .

gerrit
la source
10

Sur Ubuntu:

sudo apt-get install python-virtualenv

Le package python-pipest une dépendance, il sera donc également installé.

Arik Halperin
la source
1
python-virtualenv installera virtualenv et pip. Après cela, lancez virtualenv pour créer des environnements virtuels Python. Et exécutez pip depuis virtual env pour installer d'autres packages.
jemeshsu
2
C'est en effet l'option la plus saine. la façon "correcte" d'installer des choses dans votre système d'exploitation est d' utiliser votre système d'installation du système d'exploitation ! Après cela, vous pouvez jouer avec pip, de préférence dans un virtualenv, et ne jamais utiliser sudopour l'un ou l'autre
MestreLion
Malheureusement, les versions fournies par le système d'exploitation pipcomportent parfois des bogues importants, donc je get-pip.pyfinis souvent par utiliser les versions fournies sur python.org.
RichVel
@RichVel pouvez-vous nous expliquer les bugs importants que vous avez rencontrés?
danielpops
1
@danielpops - un exemple est ce problème de pip sur Ubuntu 16.04.1, mais il peut y avoir d'autres problèmes avec certaines versions et cas d'utilisation.
RichVel
5

J'ai fait cette procédure pour nous d'utiliser au travail.

cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1

$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper

# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh

mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.

Points clés pour la sécurité:

  1. curl effectue la validation ssl. wget ne le fait pas.
  2. À partir de pip 1.3.1, pip effectue également la validation ssl.
  3. Moins d'utilisateurs peuvent télécharger l'archive tar pypi qu'une archive tar github.
bukzor
la source
5

Mise à jour: Depuis juillet 2013, ce projet n'est plus maintenu. L'auteur suggère d'utiliser pyenv . (pyenv n'a pas de support intégré pour virtualenv, mais joue bien avec.)

Pythonbrew est un gestionnaire de versions pour python et est livré avec la prise en charge de virtualenv.

Après avoir installé pythonbrew et une version python en utilisant venvs, c'est vraiment facile:

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle
kioopi
la source
@ kermit666 merci. Quelle serait la meilleure façon de marquer ma réponse comme obsolète? Il suffit de le supprimer?
kioopi
1
Eh bien, vous pouvez le laisser tel quel (il existe des instructions sur l'utilisation de pyenv pour les personnes qui suivent le lien de mon commentaire, qui sont similaires dans le concept au pythonbrew que vous avez recommandé) ou mieux encore éditez la réponse avec, par exemple, la mise à jour de septembre 2013 par en ajoutant les nouvelles instructions. Peut-être que pythonbrew redeviendra actif à l'avenir, donc je ne supprimerais pas vos anciennes instructions. Pour plus d'informations, voir méta .
metakermit
Voir ma réponse sur pyenv, qui fonctionne bien.
RichVel
3

Il n'y a aucun problème à faire l'installation de sudo python setup.py, si vous êtes sûr que c'est ce que vous voulez faire.

La différence est qu'il utilisera le répertoire site-packages de votre système d'exploitation comme destination pour les fichiers .py à copier.

donc, si vous voulez que pip soit accessible sur toute l'étendue, c'est probablement la voie à suivre. Je ne dis pas que les autres sont mauvais, mais c'est probablement assez juste.

Alexis Métaireau
la source
1
Oui, je l'ai utilisé de cette façon. Et quelque temps plus tard, l'invocation pip freezem'a presque gelé - la liste des packages, installés à l'échelle du système, était beaucoup trop longue. Depuis lors, je recommande fortement d'utiliser l'installation du package python "no sudo" et "no os-wide".
Jan Vlcinsky
2

J'ai rencontré le même problème récemment. Je suis de plus en plus partisan de la mentalité «toujours utiliser un virtualenv», donc mon problème était d'installer virtualenv avec pip sans installer distribuer dans mon répertoire global ou utilisateur de site-packages. Pour ce faire, j'ai téléchargé manuellement distribution, pip et virtualenv, et pour chacun, j'ai exécuté «python setup.py install --prefix ~ / .local / python-private» (avec un paramètre temporaire PYTHONPATH = ~ / .local / python-private) pour que les scripts d'installation puissent trouver distribuer). J'ai déplacé le script virtualenv vers un autre répertoire que j'ai sur mon PATH et l'ai modifié afin que les modules de distribution et virtualenv se trouvent sur sys.path. Tada: Je n'ai rien installé dans / usr, / usr / local ou dans le répertoire de mon site utilisateur, mais je peux exécuter virtualenv n'importe où, et dans ce virtualenv je reçois pip.

Éric Araujo
la source
2

J'ai eu divers problèmes (voir ci-dessous) lors de l'installation de modules SSL mis à niveau, même à l'intérieur d'un virtualenv, en plus des anciennes versions de Python fournies par le système d'exploitation, donc j'utilise maintenant pyenv.

pyenv facilite l'installation de nouvelles versions de Python et prend en charge virtualenvs. Le démarrage est beaucoup plus facile que les recettes de virtualenv répertoriées dans d'autres réponses:

  • Sur Mac, tapez brew install pyenvet sur Linux, utilisez pyenv-installer
  • cela vous permet de prendre en charge virtualenv intégré ainsi que le changement de version Python (si nécessaire)
  • fonctionne bien avec Python 2 ou 3, peut avoir plusieurs versions installées à la fois

Cela fonctionne très bien pour isoler la version "new Python" et virtualenv du système Python. Parce que vous pouvez facilement utiliser un Python plus récent (post 2.7.9), les modules SSL sont déjà mis à niveau, et bien sûr, comme toute configuration virtualenv moderne, vous êtes isolé des modules Python du système.

Quelques tutoriels sympas:

Le pyenv-virtualenvplugin est maintenant intégré - type pyenv commands | grep virtualenvà vérifier. Je n'utiliserais pas le plugin pyenv-virtualenvwrapper pour commencer - voyez comment vous vous débrouillez avec pyenv-virtualenv qui est plus intégré dans pyenv, car cela couvre la plupart de ce que virtualenvwrapper fait.

pyenvest modélisé rbenv(un bon outil pour changer de version Ruby) et sa seule dépendance est bash.

  • pyenv n'est pas lié au nom très similaire pyvenv- c'est un équivalent de virtualenv qui fait partie des versions récentes de Python 3, et ne gère pas le changement de version Python

Avertissements

Deux avertissements concernant pyenv:

  1. Cela ne fonctionne qu'à partir d'un shell bash ou similaire - ou plus spécifiquement, le plugin pyenv-virtualenv n'aime pas dash, qui est /bin/shsur Ubuntu ou Debian.
  2. Il doit être exécuté à partir d'un shell de connexion interactif (par exemple à l' bash --loginaide d'un terminal), ce qui n'est pas toujours facile à réaliser avec des outils d'automatisation tels qu'Ansible .

Par conséquent, pyenv est le meilleur pour une utilisation interactive et moins bon pour les serveurs de script.

Problèmes de module SSL

L'une des raisons de l'utilisation pyenvest qu'il y a souvent des problèmes avec la mise à niveau des modules SSL Python lors de l'utilisation d'anciennes versions Python fournies par le système:

RichVel
la source
2
  • Vous pouvez le faire sans rien installer dans python lui-même.

  • Vous n'avez pas besoin de sudo ni de privilèges.

  • Vous n'avez pas besoin de trouver la dernière version d'un virtualenvfichier tar

  • Vous n'avez pas besoin de modifier les informations de version dans un script bash pour garder les choses à jour.

  • Vous n'avez pas besoin curl/ wgetou tarinstallé, ni pipoueasy_install

  • cela fonctionne pour 2.7 ainsi que pour 3.X

Enregistrez les éléments suivants dans /tmp/initvenv.py:

à partir de l' import futur fonction_impression

import os, sys, shutil, tempfile, subprocess, tarfile, hashlib

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

tmp_dir = tempfile.mkdtemp(prefix='initvenv_')
try:
    # read the latest version from PyPI
    f = urlopen("https://pypi.python.org/pypi/virtualenv/")
    # retrieve the .tar.gz file
    tar_found = False
    url = None
    sha256 = None
    for line in f.read().splitlines():
        if isinstance(line, bytes):
            line = line.decode('utf-8')
        if tar_found:
            if 'sha256' in line:
                sha256 = line.split('data-clipboard-text')[1].split('"')[1]
                break
            continue
        if not tar_found and 'tar.gz">' not in line:
            continue
        tar_found = True
        for url in line.split('"'):
            if url.startswith('https'):
                break
    else:
        print('tar.gz not found')
        sys.exit(1)
    file_name = url.rsplit('/', 1)[1]
    print(file_name)
    os.chdir(tmp_dir)
    data = urlopen(url).read()
    data_sha256 = hashlib.sha256(data).hexdigest()
    if sha256 != data_sha256:
        print('sha256 not correct')
        print(sha256)
        print(data_sha256)
        sys.exit(1)
    with open(file_name, 'wb') as fp:
        fp.write(data)
    tar = tarfile.open(file_name)
    tar.extractall()
    tar.close()
    os.chdir(file_name.replace('.tar.gz', ''))
    print(subprocess.check_output([sys.executable, 'virtualenv.py'] +
                                  [sys.argv[1]]).decode('utf-8'), end='')
    if len(sys.argv) > 2:
        print(subprocess.check_output([
            os.path.join(sys.argv[1], 'bin', 'pip'), 'install', 'virtualenv'] +

            sys.argv[2:]).decode('utf-8'), end='')
except:
    raise
finally:
    shutil.rmtree(tmp_dir)  # always clean up

et l'utiliser comme

python_binary_to_use_in_venv /tmp/initvenv.py your_venv_name [optional packages]

par exemple (si vous avez vraiment besoin de la distributecouche de compatibilité pour setuptools)

python /tmp/initvenv.py venv distribute

Veuillez noter qu'avec les anciennes versions de python, cela pourrait vous donner InsecurePlatformWarnings¹.

Une fois que vous avez votre virtualenv (nom par exemple venv), vous pouvez configurer un autre virtualenv en utilisant le virtualenvjuste installé:

venv/bin/virtualenv venv2

virtualenvwrapper

Je recommande également de jeter un œil à virtualenvwrapper , après une configuration unique:

% /opt/python/2.7.10/bin/python /tmp/initvenv.py venv virtualenvwrapper

et activation (peut être fait à partir de votre script de connexion):

% source venv/bin/virtualenvwrapper.sh

vous pouvez faire des choses comme:

% mktmpenv 
New python executable in tmp-17bdc3054a46b2b/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-17bdc3054a46b2b)% 

¹ Je n'ai pas trouvé de moyen de supprimer l'avertissement. Cela pourrait être résolu dans pipet / ou request, mais les développeurs se désignent mutuellement comme la cause. J'ai reçu la recommandation, souvent non réaliste, de mettre à niveau la version python que j'utilisais vers la dernière version. Je suis sûr que cela casserait par exemple mon installation de Linux Mint 17. Heureusement, pipmet en cache les packages, donc l'avertissement n'est émis qu'une seule fois par installation de package.

Anthon
la source
L'avertissement InsecurePlatformWarning(c'est-à-dire l'avertissement si Python est plus ancien que la version 2.7.9) peut être corrigé en installant des packages supplémentaires pyopenssl, pyasn1, ndg-httpsclient de PyPI. (Il prend en charge SSL, les certificats de décodage, https via PyOpenSSL.) Sans les bons protocoles, il n'est vraiment pas suffisamment sécurisé pour télécharger et exécuter un code.
hynekcer
@hynekcer Je vais essayer. Je me demande pourquoi pip et / ou request ne sont pas dépendants de ces paquets pour les versions python appropriées (plus anciennes).
Anthon
0

Il y a de bonnes instructions sur le site officiel de Virtualenv. https://pypi.python.org/pypi/virtualenv

Fondamentalement, ce que j'ai fait, c'est installer pipavec sudo easy_install pip, puis utiliser sudo pip install virtualenvpuis créer un environnement avec: virtualenv my_env(nommez-le ce que vous voulez), en suivant ce que j'ai fait virtualenv --distribute my_env:; qui a installé distributeet pipdans mon virtualenv.

Encore une fois, suivez les instructions sur la virtualenvpage.

Une sorte de tracas, venant de Ruby; P

Victor S
la source
0

Voici une belle façon d'installer virtualenvwrapper (mise à jour de cela ).

Téléchargez virtualenv-1.11.4 (vous pouvez le trouver ici ), décompressez-le, ouvrezterminal

# Create a bootstrapenv and activate it:
$ cd ~
$ python <path to unzipped folder>/virtualenv.py bootstrapenv
$ source bootstrapenv/bin/activate

# Install virtualenvwrapper:
$ pip install virtualenvwrapper
$ mkdir -p ~/bootstrapenv/Envs

# append it to file `.bashrc`
$ vi ~/.bashrc
  source ~/bootstrapenv/bin/activate
  export WORKON_HOME=~/bootstrapenv/Envs
  source ~/bootstrapenv/bin/virtualenvwrapper.sh

# run it now.
$ source ~/.bashrc

Ça y est, vous pouvez maintenant utiliser mkvirtualenv env1, lsvirtualenv..etc

Remarque: vous pouvez supprimer virtualenv-1.11.4et virtualenv-1.11.4.zipdes dossiers Téléchargements.

suhailvs
la source
0

La bonne nouvelle est que si vous avez installé python3.4, pyvenv est déjà installé. Alors, juste

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

Maintenant, dans cet environnement virtuel, vous pouvez utiliser pip pour installer des modules pour ce projet.

Laissez cet env virtuel, juste

deactivate
maoyang
la source