【问题标题】:Able to start module in terminal but not with PyCharm's run config能够在终端中启动模块,但不能使用 PyCharm 的运行配置
【发布时间】:2022-01-02 22:31:12
【问题描述】:

一般问题

我已经能够从终端运行某个模块。不,我想在 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 project。终端命令可以找到here。

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

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

问题

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

【问题讨论】:

    标签: python-3.x pycharm matrix-synapse


    【解决方案1】:

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

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

    解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 2021-09-12
      • 1970-01-01
      • 2021-04-02
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多