Python 同級目錄(兄弟目錄)調(diào)用方式
同級目錄(兄弟目錄)調(diào)用
看書看得好好的,一寫代碼就出錯!?。?/p>
這個問題是大家初學(xué)Python的時候會遇到的一個很常見的問題,然后我們?nèi)ニ丫W(wǎng)上的教程,自己試一試還是都是BUG,常見的就是這兩個命令:
ModuleNotFoundError: No module named 'XXXXXXX'
ImportError: attempted relative import with no known parent package
教程一般都是很詳細(xì)的給你分析,然后給你井不同文件的調(diào)用,其實整那么多沒事的干嘛是不是,我們要的只是解決辦法。
詳細(xì)解釋
注意
1、我只說兄弟的文件夾下面的調(diào)用,父子啥的__init__.py 搜一搜就可以了
2、不要用Vscode ,Vscode的環(huán)境變量你是整不明白的
3、我沒太多的時間花費在博客上,所以遇到啥才會去擴充啥,大家也可以在下面留言遇到的問題和解決的辦法
4、可能我說的也會有錯誤,但我主要的是解決我自己遇到的問題
開始上代碼
目錄結(jié)構(gòu)
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文件,該文件可以為空,但必須存在。不能作為頂層模塊來執(zhí)行該文件夾中的py文件,即使用…的文件夾外邊還需要有包含__init__.py的文件夾 (即不能作為主函數(shù)的入口)
- 主就是 不能作為主函數(shù)的入口,兄弟引用不能作為入口,意思是你不能直接運行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
import同級目錄報錯
pycharm不會將當(dāng)前文件目錄自動加入自己的sourse_path。右鍵make_directory as-->Sources Root將當(dāng)前工作的文件夾加入source_path就可以了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在flask中使用python-dotenv+flask-cli自定義命令(推薦)
這篇文章主要介紹了在flask中使用python-dotenv+flask-cli自定義命令的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01Django實現(xiàn)auth模塊下的登錄注冊與注銷功能
這篇文章主要介紹了Django實現(xiàn)auth模塊下的登錄注冊與注銷功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10關(guān)于Python調(diào)用百度語音合成SDK實現(xiàn)文字轉(zhuǎn)音頻的方法
這篇文章主要介紹了關(guān)于Python調(diào)用百度語音合成SDK實現(xiàn)文字轉(zhuǎn)音頻的方法,AipSpeech是語音合成的Python?SDK客戶端,為使用語音合成的開發(fā)人員提供了一系列的交互方法,需要的朋友可以參考下2023-07-07Python的GUI編程之Pack、Place、Grid的區(qū)別說明
這篇文章主要介紹了Python的GUI編程之Pack、Place、Grid的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06Python簡單連接MongoDB數(shù)據(jù)庫的方法
這篇文章主要介紹了Python簡單連接MongoDB數(shù)據(jù)庫的方法,結(jié)合實例形式分析了Python使用pymongo模塊操作MongoDB數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-03-03Python利用PyVista進行mesh的色彩映射的實現(xiàn)
這篇文章主要介紹了Python利用PyVista進行mesh的色彩映射的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04