【发布时间】: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