2 回答
TA贡献1809条经验 获得超8个赞
PyCharm 建议可能是因为 IDE 认为您的target
文件夹是一个模块。模块中包含可执行脚本被视为反模式。
我对此以及任何其他提议的主要 机械的调整都是-1。唯一的用例似乎是运行恰好位于模块目录内的脚本,我一直将其视为反模式。为了让我改变主意,你必须让我相信事实并非如此。
我建议您更改项目的结构,使主要逻辑位于模块中,而可执行文件位于模块之外,即:
testImport ├── script_1.py └── target └── my_logic.py
在你的 script_1.py 中:
from target.my_logic import now_ts
注意:当然,我在这里只是使用对权威的呼吁作为论据。根据您的用例,继续您正在开发的方式可能会更好。在这种情况下,只需忽略 IDE 建议即可。
TA贡献1871条经验 获得超8个赞
关键是,当您以默认方式运行脚本时python ./target/script_2.py,解释器将被视为script_2主模块,不会让您找到上层文件夹。
您可以通过以下方式来避免运行ModuleNotFoundError(仅当您清楚地了解自己在做什么时,不要在大型项目中使用):
在~/testImport运行中python -m target.script_2
script_2.py 添加在顶部
__package__ = "target.script_2"
script_2.py 添加在顶部
if __name__ == "__main__":
import sys
import os
sys.path.insert(0, os.path.abspath(os.curdir))
进入~/testImport并运行python ./target/script_2.py
如果有人能帮助我纠正我不自然的英语,我将非常感激。
添加回答
举报