Je travaille sur ma première grande application Python et j'ai des problèmes avec l'environnement. J'essaie d'utiliser la console Python (à Pycharm). Lorsque je tire hors de la console, je reçois cela - quand je le fais - p> maintenant si j'essaie de faire une importation Pour l'un de mes fichiers de projet, je dois faire, par exemple p> au lieu de simplement p> le problème de Ceci est Config Manager comporte des importations par rapport au dossier GitFlow et ceux-ci ne sont pas trouvés. p> J'ai supposé ce que je demandais est quelle est la commande de dire à la console Python d'aller efficacement p> * * em> un peu Plus d'info p> * * em> structure de répertoire p> ======= ============ plus Essayer P> J'ai lu et j'ai trouvé ce genre de choses: p> ==== =============
Encore plus d'infos p> ========================
Hey, petit coupthru. J'ai pris un pas en arrière et j'ai considéré que le mot «Conf» est un mot réservé ou un paquet qui existe déjà quelque part. Alors j'ai renommé IT Config. Maintenant, je reçois p> maintenant, à partir de la structure de répertoire que vous voyez ci-dessus, vous voyez des exceptions est à la base du projet. Pourquoi pourrait-il désormais trouver le module et la classe, mais le code du module ne peut pas trouver quelque chose dans la racine? p> ======================== =================
Vous pouvez extraire mon projet si vous voulez vous faire une fissure. c'est à p> im toujours soulevé. p> ================
Je suis toujours en train d'apprendre des commandes. quand je fais cela p> Big Thing Thing, mais la chose intéressante est cette ligne p> la chose drôle est la Le fichier contenant toutes mes exceptions est également appelé des exceptions. Dès que j'ai renommé que le fichier à flow_exceptions, tout alluma et a bien fonctionné. Bien que cela n'a pris que la moitié de la journée = -) p> p>
5 Réponses :
Si vous Just em> veux faire code> CD gitflow CODE>, vous pouvez utiliser os.chdir ("gitflow") code>, mais je suis Je ne sais pas que c'est la solution la plus élégante. >>> os.getcwd()
'C:\\Development\\gitflow'
>>> from conf.configmanager import ConfigManager
>>> c = ConfigManager()
OSError: [Errno 2] Aucun fichier ou annuaire de ce type: 'Gitflow' Ugh, cela ne devrait pas être aussi difficile. Savez-vous de dire un didacticiel d'une page sur la façon d'utiliser cette chose?
Voici un petit tutoriel sur Os.chDir et ICI est un lien vers le module code> MODULE DOCS.
Je viens de faire un getcwd (voir Edition ci-dessus) ne ressemble-t-il pas mon problème, car je suis déjà dans le dossier Gitflow. Que pourrait faire cela d'autre? Mon dossier Gitflow est défini comme un dossier source, j'imagine que cela le met dans la version Pythons de ClassePath.
c'est étrange parce que cela ne fonctionne que pour moi si je fais un gitflow.conf.configmanager et qui visse la chose en place, car ConfigManager nécessite une importation dans le dossier de gitflow inférieur et que cela ne constate pas que si je modifie des exceptions d'importation pour importer gitflow.Exceptions qui Bien sûr, je ne peux pas faire parce que cela va briser le code lorsque je le distribue.
Paramètres de projet Open, puis "Structure du projet" Parcourez le répertoire que vous souhaitez agir en tant que chemin de base et attribuer-le à "Sources",
Les importations et l'autosuggest commenceront à fonctionner conformément à votre exigence. P> LI>
ol> File-> Paramètres-> Structure du projet CODE> P> LI>
Essayé qu'hier. Les dossiers de gitflow et les tests sont marqués comme des dossiers de source.
Avez-vous essayé de marquer votre répertoire d'applications comme une racine source? Cliquez avec le bouton droit de la souris sur votre répertoire d'applications à Pycham et survolez dans le répertoire Marquer comme menu CODE> et choisissez racine source code>. Cela peut aider. P>
Après beaucoup de débogage, de lecture et d'apprentissage, j'ai constaté que mon problème était assez simple. La commande a répertorié tous les modules chargés par Python. Lors de la lecture de cette sortie, j'ai réalisé que Conf était un module répertorié dans un autre module chargé et que les exceptions de module sont utilisées par le python de base. Lorsque j'ai renommé Conf à Config et Exceptions à Flow_Exceptions Tout fonctionnait parfaitement. P> Merci tout. Je vais laisser le problème susmentionné, espérons-le, mon processus de pensée dans le débogage, cela peut aider quelqu'un d'autre. P> p>
Je dois attendre quelques heures de plus avant de me laisser
Cela m'a aidé aussi (mon module nommé de manière créative code code>). G'wan - Offrez-vous une réponse acceptée. Vous avez donné une modeste de 26 386 heures pour que d'autres soient scintiles.
Qu'est-ce qui semblait fonctionner pour moi est
import sys sys.path.extend(['path/to/whatever'])
Il s'agit d'un lien pour importer à l'aide de Python 3.3 et Voici le même lien pour Python 2.7. Pourriez-vous montrer la structure de répertoire correspondante?
Voilà y aller. Si vous avez besoin d'autres infos, faites le moi savoir. Je fais juste tourner mes roues ici
Ce qui ne fonctionne pas pour vous fait i> travaille pour moi. Utilisez-vous Python 2.7?
Eh bien, je ne suis pas sûr de ce qui se passe. Cela a fonctionné quand je l'ai testé sur Python 2.7 aussi. J'espère qu'un vrai pythonista peut vous aider ici.
oui je suis complètement percuté. J'ai quitté Pycham et je suis allé à une ligne de commande et je reçois la même chose. im lisant sur init b> .PY fichiers. Peut-être que je fais quelque chose d'étrange là-bas.
__ init __. Les fichiers PY CODE> sont appelés lorsque vous importez un package - donc si vous importezConf code>, le fichier__ init __. py code> sera exécuté en premier. Vous pouvez également faire des choses spéciales, comme définir ce qui se passe lorsque vous ditesde Conf Importer * code>. Vous pouvez définir ce qui est réellement importé. Je ne l'ai pas beaucoup utilisé, mais j'espère que cela aide du tout.Donc, le gitflow / __ init__.py doit-il avoir une sorte de référence à CONF à être vu ou est-ce que fait implicitement?
Ah, donc le problème était que vous avez nommé un module
exceptions.py code>! Débarrassez-vous de la partie où vous expliquez cela dans la question, postez-le comme une réponse et acceptez-le! Bonne trouvaille.