摘要:要避免錯誤,要保證在導(dǎo)入模塊中內(nèi)容時,此內(nèi)容在程序執(zhí)行到此處時已定義。改為中的實際示例導(dǎo)入定義使用導(dǎo)入使用導(dǎo)入使用文件改為定義導(dǎo)入使用
Python 項目逐漸增大,循環(huán)導(dǎo)入時,一不留神可能碰到錯誤:
ImportError: cannot import name ‘’
出現(xiàn)此問題一般是因為在導(dǎo)入模塊時順序上了問題
看如下例子:
./test ├── main.py ├── sub_a.py ├── sub_b.py
# main.py from sub_a import x print(x + 1)
# sub_a.py from sub_b import b a = 1 x = a + b print(x)
# sub_b.py from sub_a import a b = a + 1
運行:
python module_a.py
Traceback (most recent call last): File ".main.py", line 1, infrom sub_a import x File "~ estsub_a.py", line 1, in from sub_b import b File "~ estsub_b.py", line 1, in from sub_a import a ImportError: cannot import name "a"
由main.py進入sub_a.py 中執(zhí)行from sub_b import b語句,在這里程序進入sub_b.py中執(zhí)行,"sub_a.py"程序暫停執(zhí)行,此時需要在sub_b.py使用的sub_a.py 中的 a = 1 變量還沒有生成,因此出現(xiàn)了上述錯誤。
要避免錯誤,要保證在導(dǎo)入模塊中內(nèi)容時,此內(nèi)容在程序執(zhí)行到此處時已定義。
module_a.py 改為:
a = 1 from sub_b import b x = a + bFlask 中的實際示例:
# app.py from flask_mongoengine import MongoEngine # 導(dǎo)入 from .views.main import main as main_blueprint # 定義 db = MongoEngine() # 使用 app.register_blueprint(main_blueprint)
# views.main.py # 導(dǎo)入 from user import User # 使用 Users.objects()
# users.py # 導(dǎo)入 from app import db # 使用 class Users(db.Document): id = db.StringField(primary_key=True) name = db.StringField(required=True)
app.py 文件改為:
# app.py from flask_mongoengine import MongoEngine # 定義 db = MongoEngine() # 導(dǎo)入 from .views.main import main as main_blueprint # 使用 app.register_blueprint(main_blueprint)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40726.html
摘要:是一種常用的深度學(xué)習(xí)框架,主要應(yīng)用在視頻圖像處理方面的應(yīng)用上。由于沒錢買,只能在虛擬機環(huán)境下配置版開發(fā)環(huán)境,大家勿笑。 caffe是一種常用的深度學(xué)習(xí)框架,主要應(yīng)用在視頻、圖像處理方面的應(yīng)用上。由于沒錢買gpu,只能在虛擬機環(huán)境下配置Ubuntu CPU版caffe開發(fā)環(huán)境,大家勿笑。 1.首先,先安裝依賴庫: sudo apt-get install libprotobuf-dev...
摘要:,引言的架構(gòu)初探一文講解了的架構(gòu),本文就實際來安裝運行一下爬蟲。第一次運行的測試成功,接下來的工作接下來,我們將使用來實現(xiàn)網(wǎng)絡(luò)爬蟲,省掉對每個人工去生成和測試的工作量。,文檔修改歷史,首次發(fā)布 1,引言 《Scrapy的架構(gòu)初探》一文講解了Scrapy的架構(gòu),本文就實際來安裝運行一下Scrapy爬蟲。本文以官網(wǎng)的tutorial作為例子,完整的代碼可以在github上下載。 2,運行環(huán)...
摘要:當(dāng)通過方式安裝時,可能會遇到以下錯誤。總結(jié)下來,共找到以下兩種方法方法一下載,解壓后,把放到目錄下,重新執(zhí)行命令。但是通過上面發(fā)現(xiàn),之所以會出錯,是因為目錄下的選擇了的安裝方式。最后,通過源碼重新編譯即可安裝成功。把中的獲取,直接改為 當(dāng)通過pip方式安裝opencc時,可能會遇到以下錯誤:ImportError: No module named distribute_setup。 p...
In official Doc. of Python 3, there is a short introduction to embedding Python in another application like C/C++ (seeEmbedding Python in Another Application). The common procedure is as follows, w...
摘要:服務(wù)器上版本過低,升級為,而未升級,導(dǎo)致在執(zhí)行時報這個錯誤。報錯報錯解決方案查看版本,執(zhí)行可以查看到存在兩個版本的。將原有的改為老版本跳出再次執(zhí)行,即可使用。解決方案方法一同,不建議。 原因: yum是Python寫的。服務(wù)器上Python版本過低,升級為2.7,而yum/pip未升級,導(dǎo)致在執(zhí)行yum/pip時報這個錯誤。yum報錯: There was a problem impo...
閱讀 1408·2023-04-26 01:58
閱讀 2282·2021-11-04 16:04
閱讀 1753·2021-08-31 09:42
閱讀 1765·2021-07-25 21:37
閱讀 1066·2019-08-30 15:54
閱讀 2074·2019-08-30 15:53
閱讀 3047·2019-08-29 13:28
閱讀 2687·2019-08-29 10:56