能够在终端中启动模块,但不能使用 PyCharm 的 运行 配置

Able to start module in terminal but not with PyCharm's run config

一般问题

我已经能够从终端 运行 某个模块。不,我想 运行 在 PyCharm 上使用 运行 配置的模块。但是它失败了,即使我认为我使用的配置与终端命令中的配置相同。还是我错了?

终端命令为:

lukas@lukas-XXXX:~/PycharmProjects/synapse$ source ./env/bin/activate
(env) lukas@lukas-XXXX:~/PycharmProjects/synapse$ python -m synapse.app.homeserver --config-path homeserver.yaml

对于 运行 配置,我使用了基本的 Python 模板,仅更改了 模块名称 参数 工作目录 。 Python 解释器应该和我在上面的命令中激活的环境一样。这是配置:

运行ning 这会产生以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 185, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.8/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/home/lukas/PycharmProjects/synapse/synapse/app/__init__.py", line 18, in <module>
    from synapse import python_dependencies  # noqa: E402
  File "/home/lukas/PycharmProjects/synapse/synapse/python_dependencies.py", line 29, in <module>
    logger = logging.getLogger(__name__)
AttributeError: module 'logging' has no attribute 'getLogger'

已用模块

模块来自synapse project from matrix.org. The terminal command can be found here

到目前为止我的假设和观察

我的假设是 logging 模块在 python_dependencies.py line 29 is resolved differently, depending on whether I start the module via the terminal or via PyCharm's run config. Using the terminal, it probably resolves to Python's standard libary module. Using the Run Config, it definitively uses synapse's logging package 中访问。此外,当使用 PyCharm 导航到 python_dependencies.py 中引用的 logging 包时,PyCharm 让我进入突触的自定义 logging 模块。

问题

最大的问题是:为什么?我的 运行 配置 不应该和我的终端命令完全一样吗?我错过了什么?

好的,以某种方式删除

处的标记
  • 将内容根添加到PYTHONPATH
  • 将源根添加到 PYTHONPATH

解决了问题。