web-dev-qa-db-fra.com

Comment dupliquer virtualenv

J'ai un environnement existant dans virtualenv, avec beaucoup de paquets, mais une ancienne version Django version.

Et si je veux dupliquer cet environnement,
afin que je puisse avoir un autre environnement dans lequel je peux installer une version plus récente Django version,
mais en conservant tous les paquets qui sont déjà dans l'autre environnement?

112
dolma33

Le moyen le plus simple consiste à utiliser pip pour générer un fichier de configuration. Un fichier de configuration requise est en principe un fichier contenant la liste de tous les python que vous voulez installer (ou déjà installés dans le cas d'un fichier généré par pip)), ainsi que leurs versions. .

Pour générer un fichier de configuration, accédez à votre virtualenv d'origine et exécutez:

pip freeze > requirements.txt

Cela générera le fichier Requirements.txt pour vous. Si vous ouvrez ce fichier dans votre éditeur de texte préféré, vous verrez quelque chose comme:

Django==1.3
Fabric==1.0.1
etc...

Maintenant, éditez la ligne qui dit Django==x.x dire Django==1.3 (ou la version que vous souhaitez installer dans votre nouveau virtualenv).

Enfin, activez votre nouvea virtualenv et exécutez:

pip install -r requirements.txt

Et pip téléchargera et installera automatiquement tous les modules python) répertoriés dans votre fichier Requirements.txt , quelle que soit la version de votre choix. spécifié!

156
rdegges

Une autre option consiste à utiliser virtualenv-clone paquet:

Un script pour cloner un fichier virtualenv non relogeable.

24
alecxe

virtualenvwrapper fournit un commande pour dupliquer virtualenv

cpvirtualenv ENVNAME [TARGETENVNAME]
12
Raymond

Si vous utilisez Anaconda , vous pouvez simplement lancer:

conda create --name myclone --clone myenv

Ceci copiera myenv dans le nouvel environnement appelé myclone.

3
Jordan

Ne pouvez-vous pas simplement:

  • Copiez le répertoire env virtuel existant dans un nouveau.
  • Mise à jour du nouveau Django?
0
Spacedman