当我在Pycharm(版本2017.3.2ce)中使用向PYTHONPATH添加内容根向PYTHONPATH添加源根设置来运行单元测试时,一切正常。在
但是,当我试图在pycharm中运行terminal或将内容根和源根设置为PYTHONPATH运行pycharm。它总是说ImportError: No module named ***
我的文件夹结构如下:
-Project
-Controller
-__init__.py
-test_controller.py
-Model
- __init__.py
-model.py
-Tests
-__init__.py
-someunittest.py
当测试_控制器.py在中调用方法模型.py(模型文件夹)类似
from Model import model
它总是说没有名为Model的模块
因为最后我需要让其他用户在不安装Pycharm或其他东西的情况下执行我的代码。我需要在代码中集成设置。 谁能帮上忙?在
默认情况下,PyCharm会将project root添加到
PYTHONPATH
中,禁用向PYTHONPATH添加内容根可防止这种行为。在还有一个重要的时刻需要理解:当您使用
python path/to/script.py
运行脚本时,Python会将脚本目录添加到PYTHONPATH
。在看看测试运行配置,您可能有一个工作目录设置为}将被Python添加到{},而项目root-by-PyCharm。禁用向PYTHONPATH添加内容根目录,PyCharm不会向
Tests
,这意味着{PYTHONPATH
添加项目根,Python不会找到Model
包。在要在终端上工作,您必须注意您拨打的确切电话,例如:
可以,Python将把当前工作目录(projectroot)添加到
^{pr2}$PYTHONPATH
。在将失败-
<project_root>
不在PYTHONPATH
中,Python无法解析Model
包。希望有道理。在将以下代码添加到初始文件进行测试。那么它应该在Pycharm或terminal中工作。在
相关问题 更多 >
编程相关推荐