Python / PyCharm不识别模块

时间:2018-03-27 04:14:15

标签: python

我试图运行python project from github我遵循一些关于问题的建议,例如从Python 3更改为Python 2,或者检查init.py是否在每个文件夹中......,但是我无法解决它。

这是我得到的错误

  

追踪(最近一次通话):     File" C:/Users/Pulse/Desktop/foil-python-master/src/trimlogic/test/FamilyTreeTestCase.py" ;,第3行,在       来自trimlogic.test.helper导入FoilTestCase   ImportError:没有名为trimlogic.test.helper的模块

如果我从控制台(CMD)或PyCharm

运行python2或python 3并不重要

这是项目的结构: enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道你的问题是什么,但可以帮助你找到它。

Python按路径执行模块导入。有一个名为PYTHONPATH的神奇环境变量告诉它在哪里寻找模块。因此,当您在python文件中执行import trimlogic.test.helper时会发生什么......

它查看PYTHONPATH并获取其中的目录列表。 它转到第一个并查看是否有trimlogic.py或名为trimlogic的文件夹包含文件__init__.py。如果找到文件trimlogic.py,它将读取它并查找名为test的变量。如果是文件夹,它将进入该文件夹并查找test.py或其中包含test的名为__init__.py的文件夹。等等。如果失败,它将以相同的方式检查PYTHONPATH变量中的其余目录。您的命令失败,因为包含src文件夹的trimlogic目录不在您的PYTHONPATH上。

这里有一个神奇的伎俩。启动python.exe时的当前目录会自动添加到路径中。在控制台中,如果您执行cd C:/Users/Pulse/Desktop/foil-python-master/src然后尝试运行python.exe trimlogic/test/FamilyTreeTestCase.py,则命令将按预期运行。

此外,Pycharm有一些神奇的帮助。首先,如果右键单击src目录并将其标记为sources root,它将自动在PYTHONPATH上运行带有该目录的python命令。您还可以编辑运行命令以在执行命令之前更改要启动的工作目录或环境变量。