Python / PyCharm:运行子包模块时的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python / PyCharm:运行子包模块时的差异相关的知识,希望对你有一定的参考价值。

我有一个项目细分为包,在以下结构中:

/project
    /pkg
        __init__.py
        engine.y
        ai.py
    __init__.py
    test_script.py

engine.py有一个import语句来使用ai.py看起来像

import pkg.ai as ai

这意味着test_script.py可以作为python test_script.py在命令行中运行,并且没有问题。但是出于调试目的,engine.py也经常运行。在PyCharm中运行它没有问题但是当使用python engine.py时我得到错误说No module named pkg

有没有什么方法可以在命令行中运行engine.py,以便它没有像PyCharm那样的导入错误?

有趣的是,PyCharm的工作方式是,如果我不将pkg.放在导入模块的前面,它会用红色表示它无法找到模块(但仍然运行)。我到处寻找解决方案,但只是更加困惑。

以上是关于Python / PyCharm:运行子包模块时的差异的主要内容,如果未能解决你的问题,请参考以下文章

Python安装numpy模块及pycharm配置

15模块

使用 py2 解释器时的 PyCharm py3 语法问题

Python包结构和函数式编程

Pycharm/Python第三方模块配置

python导入模块时对路径的处理