J'ai créé un environnement virtuel avec Anaconda sur Windows 10 et installé le package dans l'environnement virtuel, mais je n'ai pas pu l'importer. Dans mon cas, il y a eu un problème lors de la définition des variables d'environnement.
Le déroulement de la création d'un environnement virtuel à l'installation d'un package et à la confirmation de l'importation.
> conda create -n py37 python==3.7
> activate py37
(py37) > conda install xxxx
> python
Python 3.7.7 (default, Apr 15 2020, 05:09:04) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import xxxx
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'xxxx'
Les variables suivantes ont été définies dans les variables d'environnement. Il semble qu'il a été défini lors de la construction de l'ancien environnement.
PYTHONHOME=C:\Users\【Nom d'utilisateur】\Anaconda3
PYTHONPATH=C:\Users\【Nom d'utilisateur】\Anaconda3\Library\bin
Vérifions l'environnement avec ces ensembles.
L'utilisation originale de ces variables d'environnement est que PYTHONPATH
Spécifiez le chemin qui stocke votre propre bibliothèque. .. Si vous affichez le répertoire cible de lecture du package en tant que sys.path
, vous pouvez voir que le chemin ajouté à PYTHONPATH
est ajouté.
(py37) > python
Python 3.7.7 (default, Apr 15 2020, 05:09:04) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
#production======================================================
# C:\Users\【Nom d'utilisateur】\Documents
# C:\Users\【Nom d'utilisateur】\Anaconda3\Library\bin <--A été ajouté
# C:\Users\【Nom d'utilisateur】\Anaconda3\envs\py37\python37.zip
# C:\Users\【Nom d'utilisateur】\Anaconda3\DLLs
# C:\Users\【Nom d'utilisateur】\Anaconda3\lib
# C:\Users\【Nom d'utilisateur】\Anaconda3\envs\py37
# C:\Users\【Nom d'utilisateur】\AppData\Roaming\Python\Python37\site-packages
# C:\Users\【Nom d'utilisateur】\Anaconda3
# C:\Users\【Nom d'utilisateur】\Anaconda3\lib\site-packages
# C:\Users\【Nom d'utilisateur】\Anaconda3\lib\site-packages\win32
# C:\Users\【Nom d'utilisateur】\Anaconda3\lib\site-packages\win32\lib
# C:\Users\【Nom d'utilisateur】\Anaconda3\lib\site-packages\Pythonwin
PYTHONHOME
spécifie le chemin vers les bibliothèques Python standard. Si vous essayez de supprimer ce PYTHON HOME
, vous pouvez voir que le chemin passe à l'environnement virtuel. Apparemment, si PYTHONHOME
est défini, la destination de chargement du package ne change pas normalement lors de l'activation de l'environnement virtuel.
(py37) > python
Python 3.7.7 (default, Apr 15 2020, 05:09:04) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
#production======================================================
# C:\Users\【Nom d'utilisateur】\Documents
# C:\Users\【Nom d'utilisateur】\Anaconda3\Library\bin
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\python37.zip <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\DLLs <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\lib <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37 <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\AppData\Roaming\Python\Python37\site-packages
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\lib\site-packages <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\lib\site-packages\win32 <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\lib\site-packages\win32\lib <-C'est un environnement virtuel
# C:\Users\【Nom d'utilisateur】\anaconda3\envs\py37\lib\site-packages\Pythonwin <-C'est un environnement virtuel
Supprimez «PYTHONHOME».
C'est correct d'avoir PYTHONPATH
, mais je n'en avais pas besoin alors je l'ai supprimé.
Pour activer conda
à l'invite de commande, ajoutez le chemin suivant à Path
.
C:\Users\【Nom d'utilisateur】\Anaconda3\Scripts
À l'invite de commande, ajoutez le chemin suivant à Path
pour permettre à la commande python
d'être utilisée sans l'activer. Cependant, si vous activez l'environnement virtuel, vous pouvez utiliser la commande python
, et l'environnement virtuel que vous utilisez est évident, donc je ne pense pas que vous ayez besoin d'ajouter ce chemin.
C:\Users\【Nom d'utilisateur】\Anaconda3
C:\Users\【Nom d'utilisateur】\AppData\Local\Microsoft\WindowsApps
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
Lorsque j'exécute la commande python
sans l'activer à l'invite de commande en utilisant la méthode ci-dessus, le chemin de la DLL ne semble pas être reconnu, je dois donc ajouter le chemin suivant au chemin
.
C:\Users\【Nom d'utilisateur】\Anaconda3\Library\bin
Après tout, à moins que vous n'effectuiez un développement spécial, si vous souhaitez utiliser Python avec Anaconda, vous ne devez ajouter que C: \ Users \ [nom d'utilisateur] \ Anaconda3 \ Scripts
à Path
.