0

一般问题

我已经能够从终端运行某个模块。不,我想在 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解释器应该和我上面命令中激活的环境一样。这是配置: 运行配置

运行它会产生以下错误:

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'

使用的模块

该模块来自 matrix.org的synapse 项目。终端命令可以在这里找到。

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

我的假设是第 29 行logging访问的模块的解析方式不同,具体取决于我是通过终端启动模块还是通过 PyCharm 的运行配置启动模块。使用终端,它可能解析为Python 的标准库模块。使用Run Config,它最终使用了 synapse 的package。此外,当使用 PyCharm 导航到in 引用的包时,PyCharm 让我进入 synapse 的自定义模块。python_dependencies.pyloggingloggingpython_dependencies.pylogging

问题

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

4

1 回答 1

0

好的,以某种方式删除标记

  • 将内容根添加到PYTHONPATH
  • 将源根添加到PYTHONPATH

解决了这个问题。

于 2022-01-02T14:31:12.977 回答