2
votes

Anaconda: impossible de trouver des packages lors de l'appel de l'interpréteur Python depuis l'extérieur du shell

J'ai deux environnements Anaconda:

  • L'environnement de base
  • Un environnement R (contenant R uniquement)

L'environnement de base est l'environnement par défaut et n'apparaît pas dans le sous-répertoire Anaconda envs . La base est activée par défaut et en particulier lors de l'exécution des commandes ci-dessous.

Lorsque j'exécute python à partir de l'invite Anaconda (ou d'une autre invite que j'ai configurée pour Anaconda), l'importation de numpy fonctionne sans problème.

Cependant, lorsque j'exécute mes scripts à partir de mon IDE (en exécutant C:\my\path\to\Anaconda3\python.exe myscript.py ), l'importation de numpy échoue. Par conséquent, j'ai installé numpy via pip et je me suis retrouvé avec une installation cassée. import numpy résultats import numpy maintenant dans

Traceback (most recent call last):
  File "D:\GoogleDrive\_Backup\Programmieren\Datathlon\econ_model.py", line 1, in <module>
    import numpy as np
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\__init__.py", line 140, in <module>
    from . import _distributor_init
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
    from . import _mklinit
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

Autant que je sache, le problème est dû à l'utilisation de différentes versions de numpy. (Je veux la version compatible mkl, cependant).

Le fait que la bonne version de numpy ne soit pas trouvée me laisse deviner que j'ai plusieurs environnements python et que le mauvais est appelé par mon IDE. Je n'ai aucune idée de comment cela peut être possible, car Anaconda est la seule ressource python sur mon PC.

Comment puis-je appeler la bonne version de python en dehors de l'invite anaconda? Comment puis-je configurer python / Anaconda pour que la version correcte soit appelée par défaut?

Je suis conscient que l'activation de l'environnement de base résout le problème lorsque vous travaillez dans un shell. Mais si j'exécute une seule commande, c'est-à-dire simplement appeler le script python sans ouvrir de shell avant, je ne peux rien activer (puis-je?).


Détails techniques:

  • Python 3.7
  • conda version 4.6.8 win-64
  • Windows 10 64 bits
  • IDE: Eclipse avec PyDev


0 commentaires

3 Réponses :


-1
votes

Vous pouvez conda activate myEnvName . Ensuite, appeler python sur shell vous apportera le python souhaité. Lors de l'installation des packages, sélectionnez toujours dans quel environnement vous souhaitez qu'il soit installé. L'environnement par défaut est de base


10 commentaires

Merci d'avoir répondu. Comme je l'ai dit, la base est active et était active lorsque j'ai installé les packages. En fait, tout fonctionne dans l'environnement de base à partir de l'invite anaconda. Alors qu'est-ce qui ne va pas dans le cas que j'ai décrit?


Pouvez-vous l'exécuter sur le shell et commenter la sortie? import numpy; print(numpy.__file__)


Sûr. La sortie est C:\my\path\to\Anaconda3\lib\site-packages\numpy\__init__.py


essayez pip uninstall numpy , puis conda install numpy . Évitez d'utiliser pip lorsque vous avez conda. Vérifiez également cette solution: github.com/ContinuumIO/anaconda-issues/issues / ...


J'ai terminé l' conda install numpy avant même d'essayer pip. Comme je l'ai dit, numpy fonctionne bien dans le shell, mais ne fonctionne pas en dehors du shell.


après la pip uninstall numpy , numpy n'est ni disponible ni à l'intérieur ni à l'extérieur du shell. conda install numpy me dit que numpy est déjà installé. J'ai donc lancé conda remove numpy et conda install numpy nouveau. Le résultat est que numpy n'est encore disponible nulle part, mais anaconda me dit que le paquet est installé ...


Essayez d'analyser la différence entre import sys; print(sys.path) dans le shell et dans votre IDE. Vérifiez également le chemin `C: \ ProgramData \ Anaconda3 \ lib \ site-packages` si numpy y est installé.


print(sys.path) me donne exactement le même résultat lorsqu'il est exécuté de l'intérieur et de l'extérieur du shell.


Peut - être que cela peut aider. Cela devrait être un problème avec pydev. Je recommande de passer à vscode si vous le pouvez.


Ce n'est certainement pas un problème PyDev, car le même problème se produit lorsque j'exécute la virgule à partir de cmd.exe ou que j'utilise simplement la fenêtre d'exécution (Win + R). J'ai maintenant supprimé et réinstallé complètement Anaconda mais j'ai rencontré d'autres problèmes.



0
votes

Vous en avez assez d'activer les environnements avec une configuration de pile? Cela permet à mes applications d'utiliser deux environnements différents en même temps avec différentes versions de Python sur chacun.

conda activate base && conda activate --stack myEnv


0 commentaires

0
votes

J'ai eu le même problème que le vôtre, j'ai donc utilisé la commande suivante sous "Exécuter en tant qu'administrateur" dans mon invite de commande, et tout fonctionne bien par la suite

set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1


0 commentaires