2 回答

TA貢獻1809條經(jīng)驗 獲得超8個贊
PyCharm 建議可能是因為 IDE 認為您的target
文件夾是一個模塊。模塊中包含可執(zhí)行腳本被視為反模式。
我對此以及任何其他提議的主要?機械的調(diào)整都是-1。唯一的用例似乎是運行恰好位于模塊目錄內(nèi)的腳本,我一直將其視為反模式。為了讓我改變主意,你必須讓我相信事實并非如此。
我建議您更改項目的結(jié)構(gòu),使主要邏輯位于模塊中,而可執(zhí)行文件位于模塊之外,即:
testImport ├──?script_1.py └──?target ????└──?my_logic.py
在你的 script_1.py 中:
from?target.my_logic?import?now_ts
注意:當(dāng)然,我在這里只是使用對權(quán)威的呼吁作為論據(jù)。根據(jù)您的用例,繼續(xù)您正在開發(fā)的方式可能會更好。在這種情況下,只需忽略 IDE 建議即可。

TA貢獻1871條經(jīng)驗 獲得超8個贊
關(guān)鍵是,當(dāng)您以默認方式運行腳本時python ./target/script_2.py,解釋器將被視為script_2主模塊,不會讓您找到上層文件夾。
您可以通過以下方式來避免運行ModuleNotFoundError(僅當(dāng)您清楚地了解自己在做什么時,不要在大型項目中使用):
在~/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
如果有人能幫助我糾正我不自然的英語,我將非常感激。
添加回答
舉報