Ich habe mit Anaconda unter Windows 10 eine virtuelle Umgebung erstellt und das Paket in der virtuellen Umgebung installiert, konnte es jedoch nicht importieren. In meinem Fall gab es ein Problem beim Festlegen der Umgebungsvariablen.
Der Ablauf von der Erstellung einer virtuellen Umgebung über die Installation eines Pakets bis hin zur Bestätigung des Imports.
> 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'
Die folgenden Variablen wurden in den Umgebungsvariablen festgelegt. Es scheint, dass es beim Aufbau der alten Umgebung festgelegt wurde.
PYTHONHOME=C:\Users\【Nutzername】\Anaconda3
PYTHONPATH=C:\Users\【Nutzername】\Anaconda3\Library\bin
Lassen Sie uns die Umgebung mit diesem Set überprüfen.
Die ursprüngliche Verwendung dieser Umgebungsvariablen lautet "PYTHONPATH" (Geben Sie den Pfad an, in dem Ihre eigene Bibliothek gespeichert ist) (https://note.nkmk.me/python-import-module-search-path/). .. Wenn Sie das Paket-Lesezielverzeichnis als "sys.path" ausgeben, können Sie sehen, dass der zu "PYTHONPATH" hinzugefügte Pfad hinzugefügt wird.
(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)
#Ausgabe======================================================
# C:\Users\【Nutzername】\Documents
# C:\Users\【Nutzername】\Anaconda3\Library\bin <--Wurde hinzugefügt
# C:\Users\【Nutzername】\Anaconda3\envs\py37\python37.zip
# C:\Users\【Nutzername】\Anaconda3\DLLs
# C:\Users\【Nutzername】\Anaconda3\lib
# C:\Users\【Nutzername】\Anaconda3\envs\py37
# C:\Users\【Nutzername】\AppData\Roaming\Python\Python37\site-packages
# C:\Users\【Nutzername】\Anaconda3
# C:\Users\【Nutzername】\Anaconda3\lib\site-packages
# C:\Users\【Nutzername】\Anaconda3\lib\site-packages\win32
# C:\Users\【Nutzername】\Anaconda3\lib\site-packages\win32\lib
# C:\Users\【Nutzername】\Anaconda3\lib\site-packages\Pythonwin
PYTHONHOME
gibt den Pfad zu Standard-Python-Bibliotheken an. Wenn Sie versuchen, dieses "PYTHON HOME" zu löschen, können Sie sehen, dass der Pfad zur virtuellen Umgebung wechselt. Wenn "PYTHONHOME" eingestellt ist, scheint das Paketladeziel beim Aktivieren der virtuellen Umgebung nicht normal zu wechseln.
(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)
#Ausgabe======================================================
# C:\Users\【Nutzername】\Documents
# C:\Users\【Nutzername】\Anaconda3\Library\bin
# C:\Users\【Nutzername】\anaconda3\envs\py37\python37.zip <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37\DLLs <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37\lib <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37 <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\AppData\Roaming\Python\Python37\site-packages
# C:\Users\【Nutzername】\anaconda3\envs\py37\lib\site-packages <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37\lib\site-packages\win32 <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37\lib\site-packages\win32\lib <-Es ist eine virtuelle Umgebung
# C:\Users\【Nutzername】\anaconda3\envs\py37\lib\site-packages\Pythonwin <-Es ist eine virtuelle Umgebung
Löschen Sie PYTHONHOME
.
Es ist in Ordnung, "PYTHONPATH" zu haben, aber ich brauchte es nicht, also habe ich es gelöscht.
Um conda
an der Eingabeaufforderung zu aktivieren, fügen Sie den folgenden Pfad zu Path
hinzu.
C:\Users\【Nutzername】\Anaconda3\Scripts
Fügen Sie an der Eingabeaufforderung den folgenden Pfad zu "Pfad" hinzu, damit Sie den Befehl "Python" verwenden können, ohne ihn zu aktivieren. Wenn Sie jedoch die virtuelle Umgebung aktivieren, können Sie den Befehl python
verwenden, und die von Ihnen verwendete virtuelle Umgebung ist offensichtlich, sodass Sie diesen Pfad nicht hinzufügen müssen.
C:\Users\【Nutzername】\Anaconda3
C:\Users\【Nutzername】\AppData\Local\Microsoft\WindowsApps
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
Wenn ich den Befehl python
ausführe, ohne ihn an der Eingabeaufforderung mit der obigen Methode zu aktivieren, scheint der DLL-Pfad nicht erkannt zu werden, und ich muss dem Pfad
den folgenden Pfad hinzufügen.
C:\Users\【Nutzername】\Anaconda3\Library\bin
Wenn Sie Python mit Anaconda verwenden möchten, sollten Sie, sofern Sie keine spezielle Entwicklung durchführen, nur "C: \ Users \ [Benutzername] \ Anaconda3 \ Scripts" zu "Path" hinzufügen.