[PYTHON] Si vous ne pouvez pas importer même s'il est déjà installé par tuyauterie

Il est installé lorsque vous le pipetez, mais vous ne pouvez pas l'importer. C'est une histoire simple, mais par exemple

>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'django'

J'obtiens une erreur lorsque j'essaye d'importer django. Le contenu de l'erreur reste le même, mais le module est introuvable.

Je me suis demandé s'il n'y avait pas de django en premier lieu, et quand je le pipi,

C:\Users\aaa>pip install django
Requirement already satisfied: django in c:\users\aaa\anaconda3\lib\site-packages (3.0)
Requirement already satisfied: sqlparse>=0.2.2 in c:\users\aaa\anaconda3\lib\site-packages (from django) (0.3.0)
Requirement already satisfied: asgiref~=3.2 in c:\users\aaa\anaconda3\lib\site-packages (from django) (3.2.3)
Requirement already satisfied: pytz in c:\users\aaa\anaconda3\lib\site-packages (from django) (2019.3)

Puisqu'il est déjà satisfait, on dit qu'il est déjà satisfait. Cela signifie simplement que le chemin ne passe pas.

Vous pouvez vérifier le chemin dans sys.path

>>> import sys
>>> import path
>>> pprint.pprint(sys.path)
['',
 'C:\\Users\\aaa\\Anaconda3\\python37.zip',
 'C:\\Users\\aaa\\Anaconda3\\DLLs',
 'C:\\Users\\aaa\\Anaconda3\\lib',
 'C:\\Users\\aaa\\Anaconda3',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\Pythonwin',

En effet, il n'y a pas de chemin django "django dans c: \ users \ aaa \ anaconda3 \ lib \ site-packages (3.0)".

Une fois que vous savez cela, il ne vous reste plus qu'à ajouter le chemin d'accès aux variables d'environnement. Puisqu'il peut être ajouté à la variable d'environnement avec sys.path.append

sys.path.append("c:/users/aaa/anaconda3/lib/site-packages (3.0)")

Si vous l'avez enfoncé, vérifiez à nouveau

>>> pprint.pprint(sys.path)
 'c:/users/aaa/anaconda3/lib/site-packages (3.0)'

Est OK si est ajouté.

>>> import django
>>> print(django.get_version())
3.0

J'ai pu confirmer que django peut être utilisé.

Modèle d'erreur

À propos, lorsque j'essaie de le copier et de le coller dans une variable d'environnement, j'obtiens cette erreur.

>>> sys.path.append("c:\users\aaa\anaconda3\lib\site-packages (3.0)")
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \uXXXX escape
>>> sys.path.append("c:/users/aaa/anaconda3/lib/site-packages (3.0)")

C'est parce que la marque \ est un échappement, donc \ u la reconnaît comme une séquence d'échappement. sys.path.append ("c: \ utilisateurs \ aaa \ anaconda3 \ lib \ site-packages (3.0)") Vous pouvez le faire avec sys.path.append ("c: / users / aaa / anaconda3 / lib / site-packages (3.0)").

Recommended Posts

Si vous ne pouvez pas importer même s'il est déjà installé par tuyauterie
Erreur d'importation même si Python est installé
Si vous devez installer pip mais obtenez une erreur d'importation
Si vous essayez d'installer Python2 pip après avoir installé Python3 pip et qu'il est rejeté
Que faire si vous ne pouvez pas installer mysqlclient
Qu'est-ce que pip et comment l'utilisez vous?
Que faire si vous êtes en colère contre "le backend Gtk * nécessite l'installation de pygtke" même si pygtk est inclus dans matplotlib
Si vous obtenez une erreur: ce port est déjà utilisé. Dans Django
Que faire si vous ne pouvez pas installer pyaudio avec pip #Python
Tensorflow avec tarte à la râpe. Si vous trébuchez avec pip, résolvez-le avec virtualenv!
[TensorFlow] Si vous souhaitez exécuter TensorBoard, installez-le avec pip.