Pourquoi ne PyCharm toujours ajouter “contenu de la racine” à mon PYTHONPATH, et ce PYTHONPATH?
Je suis confus sur la façon PyCharm détermine le chemin d'accès Python utilise pour localiser les modules et packages.
Tout d'abord, quand j'ai décocher les paramètres (dans la "Console Python" et ma Configuration d'essai), je persiste à voir dans le répertoire de mon projet au début de sys.path
.
Par exemple, j'ai un projet dans le chemin de problème " et "Exécuter" un fichier contenant
import sys
for p in sys.path:
print p
- Je obtenir
/Users/Rax/Documents/Projects/pathproblem
... (other things in my PYTHONPATH)
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages
même quand j'ai demandé pour le "contenu de la racine" être exclus de la voie:
Cela peut entraîner dans la réussite de l'importation de modules qui ne sont pas importés dans les déploiements classiques (par exemple, lors de la construction d'un package).
Si je vérifie le paramètre-je obtenir deux fois:
/Users/Rax/Documents/Projects/pathproblem
... (other things in my PYTHONPATH)
/Users/Rax/Documents/Projects/pathproblem
...
Il semble que PyCharm toujours ajoute le projet actuel de la racine au début de (ce qu'il considère être) le PYTHONPATH et que ce paramètre ajoute juste qu'il nouveau à la fin.
(1) Comment puis-je configurer PyCharm, de sorte qu'il (vraiment) ne pas ajouter le répertoire de projet à la recherche de colis chemin?
Aussi, aussi loin que je peux dire, PYTHONPATH, pour PyCharm, n'est pas mon système PYTHONPATH à tous, mais l'utilisateur "ajouté" les entrées dans — en fait, prêter à confusion, à la fin de l'paramètres de Chemin de l'Interpréteur Python.
(2) d'Où vient PyCharm de PYTHONPATH venir? Ce n'est pas le PYTHONPATH je vois partout ailleurs sur mon système.
FWIW, PyCharm du Sphinx respecte "le contenu de la racine" paramètres", d'ajouter le contenu de la racine seulement lorsque le chemin lorsque cette case est cochée dans la configuration de build.
OriginalL'auteur orome | 2014-01-18
Vous devez vous connecter pour publier un commentaire.
Il le devrait parce que PyCharm ajoute le projet de la route pour le Chemin d'accès par défaut.
Au meilleur de ma connaissance, vous ne pouvez pas. Cependant, vous pouvez faire quelque chose qui n'est pas d'ajouter vos fichiers sur le contenu de l'itinéraire. Toutefois, avant de vous montrer comment faire cela, laissez-moi vous expliquer pourquoi il ajoute le courant de la racine du répertoire de son chemin. Lorsque vous ouvrez la console python:
Maintenant, j'ai un fichier appelé
foo.py
, et dans ce fichier j'ai une fonction appeléebar
, donc je peux facilement importer de la fonction dans ma console:Comme vous pouvez le voir dans l'image ci-dessus, PyCharm automatiquement ajouter votre racine. Cela devrait venir en tant qu'aucune surprise puisque lorsque vous
cd
dans un répertoire et exécuter quelque chose commepython foo.py
, vous êtes implicitement ajoutant le courant de la racine de votre chemin. Pour émuler ce dans la console python, PyCharm ajoute le courant de la racine.Pour éviter cela, vous pouvez simplement créer un dossier à l'intérieur de votre racine et marquez-le comme une des sources de la racine:
Et depuis votre Source racines ne sera pas ajouté au chemin d'accès, vous pouvez dormir tranquille:
Il s'agit de votre interprète paramètres:
En général,
PYTHONPATH
est essentiellement une collection de tous les répertoires de la maison de vos fichiers de bibliothèque standard, et aussi de votre troisième partie de la bibliothèque de fichiers.OriginalL'auteur Games Brainiac
Dans ce cas, "projets/pathproblem" est ajouté à sys.chemin d'accès en Python lui-même, pas par PyCharm. Voir http://docs.python.org/2/library/sys.html#sys.path : "Comme initialisé au démarrage du programme, le premier élément de cette liste, chemin[0], est le répertoire contenant le script qui a été utilisé pour invoquer l'interpréteur Python."
Pour répondre à votre deuxième question, PyCharm construit le PYTHONPATH par l'exécution de l'sélectionnés interpréteur Python avec un script pour imprimer le contenu de sys.chemin d'accès, l'enregistrement de son résultat, et puis ajouter les modifications nécessaires en fonction des paramètres du projet (Django, App Engine, etc.)
OriginalL'auteur yole