我在用Python导入模块/包时遇到问题。我在终端(CMD)上运行时注意到这个问题, 而不是我的IDE(我使用PyCharm)。在PyCharm中,我在python3.7中使用了一个虚拟环境设置,一切都像一个charm 如你所愿。你知道吗
以下是在test_suite.py
中导入的方式,仅供参考:
...
from tests.scenarios.test_scenario_01 import TestScenario # They work perfectly fine
from tests.scenarios.test_scenario_02 import TestScenario2 # written like this in PyCharm venv Python 3.7, but why?
...
这是我的目录的简化版本(没有不必要的文件):
QA System/
├── locators/
│ ├── locators.py
│ ├── __init__.py
├── pages/
│ ├── pages.py
│ └── __init__.py
└── tests/
├── reports
├── test_scenarios
├── test_scenario_01.py
├── test_scenario_02.py
├── __init__.py
|── test_suite.py
|── __init__.py
但是,当通过CMD手动运行文件test_suite.py
时(因为我想将它与Jenkins集成)
最终),我得到了这个错误(py -3 test_suite.py
):
ModuleNotFoundError: No module named 'tests'
注意:我使用的是最新的python3.7
根据我对Python导入的了解,要将目录视为Python模块,需要有一个'__init__.py'
文件
包含在同一目录中。你知道吗
经过一段时间的研究,我发现可以在python3中进行不同类型的导入,并进行了尝试(使用.
在导入的名称之前)。像这样:
from .scenarios.test_scenario_01 import TestScenario
from .scenarios.test_scenario_02 import TestScenario2
但它仍然没有成功运行,这就是我遇到的错误:
ModuleNotFoundError: No module named '__main__.scenarios'; '__main__' is not a package
你能帮我解决这个问题吗?你知道吗
TLDR:导入在Python3.7venv中工作,但不能在其外部工作
我通过在系统环境变量中设置带有项目路径的
PYTHONPATH
来修复这个问题。作为一个值,我将dir放在项目中。谢谢你的小费。你知道吗对于目录,必须使用init.py。在模块中,它不需要包含init.py。请检查你的主目录和你的模块…希望这有帮助。。。。你知道吗
相关问题 更多 >
编程相关推荐