您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python如何調用同級目錄,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
看書看得好好的,一寫代碼就出錯!!!
這個問題是大家初學Python的時候會遇到的一個很常見的問題,然后我們去搜網上的教程,自己試一試還是都是BUG,常見的就是這兩個命令:
ModuleNotFoundError: No module named 'XXXXXXX'
ImportError: attempted relative import with no known parent package
教程一般都是很詳細的給你分析,然后給你井不同文件的調用,其實整那么多沒事的干嘛是不是,我們要的只是解決辦法。
注意
1、我只說兄弟的文件夾下面的調用,父子啥的__init__.py 搜一搜就可以了
2、不要用Vscode ,Vscode的環境變量你是整不明白的
3、我沒太多的時間花費在博客上,所以遇到啥才會去擴充啥,大家也可以在下面留言遇到的問題和解決的辦法
4、可能我說的也會有錯誤,但我主要的是解決我自己遇到的問題
目錄結構
a1.py
def a1_print(): print("a1_print OK")
b1.py
from ..a.a1 import a1_print a1_print()
運行b1.py,報錯
ImportError: attempted relative import with no known parent package
原因
文件夾被python解釋器視作package需要滿足兩個條件:
文件夾中必須有__init__.py文件,該文件可以為空,但必須存在。不能作為頂層模塊來執行該文件夾中的py文件,即使用…的文件夾外邊還需要有包含__init__.py的文件夾 (即不能作為主函數的入口)
主就是 不能作為主函數的入口,兄弟引用不能作為入口,意思是你不能直接運行b1.py,你可以在c1.py 這樣弄,b1.py 不可以 不可以 不可以
我非要咋解決
修改b1.py
import sys# 加了這了 sys.path.append("..") ## 這個 from a.a1 import a1_print #改了這個 a1_print()
輸出
BUG
Pycharm
我覺得還是不管它吧,能運行就不錯了,沒有啥影響。
不要用Vscode 不要用Vscode 不要用Vscode
pycharm不會將當前文件目錄自動加入自己的sourse_path。右鍵make_directory as-->Sources Root將當前工作的文件夾加入source_path就可以了。
關于“Python如何調用同級目錄”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。