L'importation d'un module Python fonctionne depuis la ligne de commande, mais pas depuis PyCharm

8

Mon binaire Python par défaut est défini sur celui avec la distribution Anaconda de Python. Il se trouve à /home/karnivaurus/anaconda/bin/python, et je l' ai fait ce défaut en ajoutant à mon .bashrcfichier ce qui suit: export PATH=/home/karnivaurus/anaconda/bin:$PATH.

J'ai aussi un paquet Python appelé caffe, qui est situé à /home/karnivaurus/caffe/distribute/python, et je l' ai ajouté à la voie de recherche de paquet en ajoutant à mon .bashrcdossier ce qui suit: export PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python.

Maintenant, j'ai un simple fichier Python, appelé test.py, avec le contenu suivant:

import caffe
print "Done."

Si j'exécute cela en entrant python test.pydans le terminal, cela fonctionne très bien, en imprimant "Terminé". Le problème que j'ai est lorsque je lance ceci dans PyCharm IDE. Dans PyCharm, j'ai défini l'interprète comme tel /home/karnivaurus/anaconda/bin/python. Mais lorsque j'ouvre test.pydans PyCharm et que j'exécute le fichier dans l'IDE, j'obtiens l'erreur suivante:

ImportError: No module named caffe

Ma question est donc la suivante: pourquoi PyCharm ne peut-il pas trouver le caffemodule lorsqu'il exécute le script Python, mais il peut être trouvé lorsque j'exécute le script à partir du terminal?

Je vous remercie!

Karnivaurus
la source
2
Je suppose que PyCharm ne se soucie pas de vous .bashrc, car c'est un fichier de configuration spécifique à bash. Vous devez définir cette variable dans PyCharm ou dans eg.profile
Byte Commander

Réponses:

11

Comme ByteCommander l'a dit dans un commentaire, PyCharm n'utilise pas bashrc, donc il ne sait pas où se trouve votre bibliothèque.

Dans le même écran où vous avez ajouté l'interprète, vous pouvez voir une icône de roue, cliquez dessus, il vous montrera un menu, cliquez sur plus. Vous devriez voir un écran comme celui-ci:

Configuration de PyCharm Interpreter

Vous devez sélectionner votre interprète et cliquer sur le dernier bouton. Cela devrait ouvrir cette fenêtre:

Configuration des chemins d'interpréteur

Maintenant, en cliquant sur l'icône plus, vous devriez pouvoir ajouter vos propres chemins pour les bibliothèques.

Javier Rivera
la source
2
Et c'est un bon exemple de la raison pour laquelle il est plus facile de donner des instructions avec la ligne de commande qu'avec les interfaces graphiques.
Javier Rivera
Merci. Est-ce la façon d'ajouter des chemins pour les bibliothèques binaires et les modules Python? Ou faut-il ajouter des modules Python à la "racine source"?
Karnivaurus
1
Tous les deux. Vous ne devez utiliser Source Root que si vous allez apporter des modifications à ces modules (vous n'avez pas besoin de les ajouter ensuite à Source Root pour l'achèvement, la documentation ou «aller à la source» pour travailler).
Javier Rivera
5

Les programmes démarrés à partir du lanceur Ubuntu ne lisent pas.bashrc . Au lieu de définir les chemins d'accès dans PyCharm, vous pouvez simplement démarrer PyCharm à partir d'un shell Bash pour lui donner accès aux variables d'environnement que vous définissez .bashrc.

Mihai Capotă
la source
Existe-t-il un moyen de faire lire les fichiers .bash_rc au démarrage du lanceur?
User007
0

Ouvrez le raccourci suivant ( Ctrl+ Alt+ S) et cliquez sur (Projet: xxxx), choisissez maintenant (Structure du projet) et sélectionnez ( /home/yourUser/PycharmProjects/XXXX/venv/bin) et cliquez avec le bouton droit (Exclu) ou ( Alt+ E).

Maintenant, cliquez sur (+ Ajouter une racine de contenu) et voyez s'il pointe vers l'emplacement suivant ( /home/ yourUser/PycharmProjects/XXXXX/venv/bin), puis cliquez sur OK. Fermez maintenant l'IDE et ouvrez-le à nouveau.

Marcio Torres
la source