Python/PyCharm 无法识别模块

Python/PyCharm doesn't recognize modules

我正在尝试 运行 python project from github 我遵循一些关于问题的建议,例如从 Python 3 更改为 Python 2,或者检查 [= =22=]在每个文件夹...,但我无法解决它。

这是我得到的错误

Traceback (most recent call last): File "C:/Users/Pulse/Desktop/foil-python-master/src/trimlogic/test/FamilyTreeTestCase.py", line 3, in from trimlogic.test.helper import FoilTestCase ImportError: No module named trimlogic.test.helper

我 运行 python2 或 python 3 都没有关系,无论是从控制台 (CMD) 还是 PyCharm

这是项目的结构:

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

Python 通过路径导入模块。有一个神奇的环境变量 PYTHONPATH 告诉它去哪里寻找模块。因此,当您在 python 文件中执行 import trimlogic.test.helper 时,发生的情况是...

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

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

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