J'ai installé et utilisé la distribution Anaconda Python, et j'ai commencé à utiliser l'environnement Anaconda (Conda). Je peux utiliser la conda install...
commande standard pour mettre des paquets de la distribution dans mes environnements, mais pour utiliser quoi que ce soit à l'extérieur (c'est-à-dire Flask-WTF, flask-sqlalchemy et alambic), je dois utiliser pip install
dans l'environnement actif. Cependant, lorsque je regarde le contenu de l'environnement, soit dans le répertoire, soit en utilisant conda list
ces pip install
packages ed n'apparaissent pas.
Utiliser pip freeze
et pip list
répertorie tous les packages que j'ai déjà installés.
Existe-t-il un moyen de garder une trace de ce que contient chacun de mes Anaconda env
(à la fois pip
et conda
installé)?
pip
installé avecconda
, par exemple~/anaconda/bin/pip
. Utilisez-le pour installer des packages dans unconda
environnement, ainsi que pour voir l'union des packages installés avec thispip
et avecconda install
.conda list
a depuis un certain temps maintenant inclus des paquets python qui ont été installés par d'autres moyens (par exemple, pip, installation facile, directement avecpython setup.py install
, etc.)Réponses:
conda-env le fait maintenant automatiquement (si pip a été installé avec conda).
Vous pouvez voir comment cela fonctionne en utilisant l'outil d'exportation utilisé pour migrer un environnement:
Le fichier listera à la fois les packages conda et les packages pip:
Si vous souhaitez poursuivre l'exportation de l'environnement, passez
environment.yml
à la nouvelle machine hôte et exécutez:la source
conda
ne gardera trace que des packages installés. Etpip
vous donnera les paquets qui ont été soit installés en utilisant le programme d'pip
installation lui-même, soit ils ont utilisésetuptools
dans leur constructionsetup.py
si conda a généré les informations sur l'œuf. Vous avez donc essentiellement trois options.Vous pouvez prendre l'union des packages
conda list
etpip freeze
et gérer les packages qui ont été installés en utilisantconda
(qui apparaissent dansconda list
) avec leconda
gestionnaire de packages et ceux qui sont installés avecpip
(qui apparaissent danspip freeze
mais pas dansconda list
) avecpip
.Installez dans votre environnement uniquement les packages
python
,pip
etdistribute
et gérez tout avecpip
. (Ce n'est pas si simple si vous êtes sous Windows ...)Créez vos propres
conda
packages et gérez tout avecconda
.Je recommanderais personnellement la troisième option car il est très facile de créer des
conda
packages. Il existe un référentiel git d'exemples de recettes sur le compte github du continuum. Mais cela se résume généralement à:ou juste:
De plus, lorsque vous les avez construits une fois, vous pouvez les télécharger sur https://binstar.org/ et simplement les installer à partir de là.
Ensuite, vous aurez tout géré en utilisant
conda
.la source
~/anaconda/bin/pip install memory-profiler
etconda install numba
, et ils sont tous les deux affichés~/anaconda/bin/pip freeze
.conda install C:\...PACKAGE-0.0.0-py27_0.tar.bz2
comme décrit dans stackoverflow.com/a/20750388/125507conda install python=3.x.y
dans votre environnement conda de sorte que les installations de pip ultérieures passent par le pip installé par conda.Il existe une branche de conda (new-pypi-install) qui ajoute une meilleure intégration avec pip et PyPI. En particulier, la liste conda affichera également les packages installés par pip et l'installation de conda essaiera d'abord de trouver un package conda et en échouant, il utilisera pip pour installer le package.
Cette branche devrait être fusionnée plus tard cette semaine afin que la version 2.1 de conda ait une meilleure intégration pip avec conda.
la source
conda install package
et qu'il ne trouve pas de recette de conda, il essaie de l'installer viapip
(et en garde la trace). Il suggère même utilement l'installationpip
sinon dans votre environnement. Merci Travis pour tout votre travail!conda install autopep8
il me dit "Aucun paquet trouvé" et que je devrais rechercher anaconda.org manuellement.running pip...
ne fonctionne pas non plus, il ne cherchera pas du tout le package conda.J'ai suivi la réponse de @Viktor Kerkez et j'ai eu un succès mitigé. J'ai trouvé que parfois cette recette de
ressemblerait à tout a fonctionné mais je n'ai pas pu importer avec succès le PACKAGE. Récemment, j'ai posé des questions à ce sujet sur le groupe d'utilisateurs Anaconda et entendu @Travis Oliphant lui-même sur la meilleure façon d'utiliser conda pour créer et gérer des paquets qui ne sont pas livrés avec Anaconda. Vous pouvez lire ce fil ici , mais je vais décrire l'approche ci-dessous pour, espérons-le, rendre les réponses à la question du PO plus complètes ...
Exemple: je vais installer l'excellent package prettyplotlib sur Windows en utilisant conda 2.2.5.
1a)
conda build --build-recipe prettyplotlib
Vous verrez que les messages de compilation semblent tous bons jusqu'à la dernière section TEST de la construction. J'ai vu cette erreur
1b) Allez dans / conda-recettes / prettyplotlib et éditez le fichier meta.yaml. Actuellement, les packages en cours de configuration comme à l'étape 1a entraînent des fichiers yaml contenant une erreur dans la
test
section. Par exemple, voici comment le mien cherchaitprettyplotlib
Modifiez cette section pour supprimer la ligne vide précédée de - et supprimez également la ligne redondante prettyplotlib. Au moment d'écrire ces lignes, j'ai constaté que je devais éditer la plupart des fichiers meta.yaml comme celui-ci pour les packages externes que j'installe avec conda, ce qui signifie qu'il y a une ligne d'importation vide provoquant l'erreur avec une importation redondante du package donné .
1c) Relancez la commande à partir de 1a, qui devrait se terminer sans erreur cette fois. À la fin de la construction, on vous demandera si vous souhaitez télécharger la construction sur binstar . J'ai entré Non et j'ai vu ce message:
Ce fichier tar.bz2 est la version que vous devez maintenant installer.
2)
conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
En suivant ces étapes, j'ai utilisé avec succès conda pour installer un certain nombre de packages qui ne sont pas fournis avec Anaconda. Auparavant, j'avais installé certains d'entre eux en utilisant pip, donc je l'ai fait
pip uninstall PACKAGE
avant d'installer PACKAGE avec conda. En utilisant conda, je peux maintenant gérer (presque) tous mes paquets avec une seule approche plutôt que d'avoir un mélange de choses installé avec conda, pip, easy_install et python setup.py install.Pour le contexte, je pense que ce récent billet de blog par @Travis Oliphant sera utile pour les gens comme moi qui n'apprécient pas tout ce qui entre dans un emballage Python robuste mais apprécient certainement quand les choses "fonctionnent juste". conda semble être un excellent moyen d'avancer ...
la source
C'est pourquoi j'ai écrit Picky: http://picky.readthedocs.io/
C'est un package python qui suit les packages installés avec pip ou conda dans les environnements virtualenvs et conda.
la source
Je pense que ce qui manque ici, c'est que lorsque vous faites:
pour installer un package local avec un setup.py, il installe un package qui est visible par tous les envs conda qui utilisent la même version de python. Remarque J'utilise la version conda de pip!
par exemple, si j'utilise python2.7, il place le package local ici:
/usr/local/anaconda/lib/python2.7/site-packages
Si je crée ensuite un nouvel env conda avec python = 2.7 (= la valeur par défaut):
Et puis faites:
Cependant, si je fais:
Donc, dans ce cas, conda ne connaît pas le package pip, mais le package est disponible pour python.
Cependant, si j'installe à la place le package local (à nouveau en utilisant pip) après avoir créé (et activé) le nouvel env conda, maintenant conda le voit:
Donc, je pense que l'interaction entre conda et pip a quelques problèmes - c'est-à-dire que l'utilisation de pip pour installer un package local à partir d'un env conda rend ce package disponible (mais non visible via la liste conda) à tous les autres envs conda de la même version python.
la source
conda env export
répertorie tous les packages conda et pip dans un environnement.conda-env
doit être installé dans la racine conda (conda install -c conda conda-env
).Pour écrire un
environment.yml
fichier décrivant l'environnement actuel:Références:
la source
Je préfixe généralement le dossier 'bin / pip' pour l'environnement spécifique dans lequel vous souhaitez installer le package avant la commande 'pip'. Par exemple, si vous souhaitez installer pymc3 dans l'environnement py34, vous devez utiliser cette commande:
En gros, il vous suffit de trouver le bon chemin vers le dossier 'bin / pip' de votre environnement et de le placer avant la commande d'installation.
la source
Mon
which pip
montre le chemin suivant:Ainsi, quel que soit le package que j'installe en utilisant,
pip install <package-name>
devra être reflété dans la liste des packages lorsque la liste sera exportée en utilisant:Mais je ne le fais pas. Donc, à la place, j'ai utilisé la commande suivante comme suggéré par plusieurs autres:
Maintenant, je peux voir tous les packages de mon
all-packages.yml
fichier.la source
Vous pouvez commencer par installer la commande ci-dessous dans l'environnement conda:
conda install pip
Suivi de l'installation de tous les packages pip dont vous avez besoin dans l'environnement.
Après avoir installé tous les packages conda et pip pour exporter l'environnement, utilisez:
conda env export -n <env-name> > environment.yml
Cela créera le fichier requis dans le dossier
la source