摘要:要避免錯(cuò)誤,要保證在導(dǎo)入模塊中內(nèi)容時(shí),此內(nèi)容在程序執(zhí)行到此處時(shí)已定義。改為中的實(shí)際示例導(dǎo)入定義使用導(dǎo)入使用導(dǎo)入使用文件改為定義導(dǎo)入使用
Python 項(xiàng)目逐漸增大,循環(huán)導(dǎo)入時(shí),一不留神可能碰到錯(cuò)誤:
ImportError: cannot import name ‘’
出現(xiàn)此問題一般是因?yàn)樵趯?dǎo)入模塊時(shí)順序上了問題
看如下例子:
./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
運(yùn)行:
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進(jìn)入sub_a.py 中執(zhí)行from sub_b import b語句,在這里程序進(jìn)入sub_b.py中執(zhí)行,"sub_a.py"程序暫停執(zhí)行,此時(shí)需要在sub_b.py使用的sub_a.py 中的 a = 1 變量還沒有生成,因此出現(xiàn)了上述錯(cuò)誤。
要避免錯(cuò)誤,要保證在導(dǎo)入模塊中內(nèi)容時(shí),此內(nèi)容在程序執(zhí)行到此處時(shí)已定義。
module_a.py 改為:
a = 1 from sub_b import b x = a + bFlask 中的實(shí)際示例:
# 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40726.html
摘要:是一種常用的深度學(xué)習(xí)框架,主要應(yīng)用在視頻圖像處理方面的應(yīng)用上。由于沒錢買,只能在虛擬機(jī)環(huán)境下配置版開發(fā)環(huán)境,大家勿笑。 caffe是一種常用的深度學(xué)習(xí)框架,主要應(yīng)用在視頻、圖像處理方面的應(yīng)用上。由于沒錢買gpu,只能在虛擬機(jī)環(huán)境下配置Ubuntu CPU版caffe開發(fā)環(huán)境,大家勿笑。 1.首先,先安裝依賴庫: sudo apt-get install libprotobuf-dev...
摘要:,引言的架構(gòu)初探一文講解了的架構(gòu),本文就實(shí)際來安裝運(yùn)行一下爬蟲。第一次運(yùn)行的測(cè)試成功,接下來的工作接下來,我們將使用來實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲,省掉對(duì)每個(gè)人工去生成和測(cè)試的工作量。,文檔修改歷史,首次發(fā)布 1,引言 《Scrapy的架構(gòu)初探》一文講解了Scrapy的架構(gòu),本文就實(shí)際來安裝運(yùn)行一下Scrapy爬蟲。本文以官網(wǎng)的tutorial作為例子,完整的代碼可以在github上下載。 2,運(yùn)行環(huán)...
摘要:當(dāng)通過方式安裝時(shí),可能會(huì)遇到以下錯(cuò)誤。總結(jié)下來,共找到以下兩種方法方法一下載,解壓后,把放到目錄下,重新執(zhí)行命令。但是通過上面發(fā)現(xiàn),之所以會(huì)出錯(cuò),是因?yàn)槟夸浵碌倪x擇了的安裝方式。最后,通過源碼重新編譯即可安裝成功。把中的獲取,直接改為 當(dāng)通過pip方式安裝opencc時(shí),可能會(huì)遇到以下錯(cuò)誤: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ù)器上版本過低,升級(jí)為,而未升級(jí),導(dǎo)致在執(zhí)行時(shí)報(bào)這個(gè)錯(cuò)誤。報(bào)錯(cuò)報(bào)錯(cuò)解決方案查看版本,執(zhí)行可以查看到存在兩個(gè)版本的。將原有的改為老版本跳出再次執(zhí)行,即可使用。解決方案方法一同,不建議。 原因: yum是Python寫的。服務(wù)器上Python版本過低,升級(jí)為2.7,而yum/pip未升級(jí),導(dǎo)致在執(zhí)行yum/pip時(shí)報(bào)這個(gè)錯(cuò)誤。yum報(bào)錯(cuò): There was a problem impo...
閱讀 1415·2023-04-26 01:58
閱讀 2294·2021-11-04 16:04
閱讀 1783·2021-08-31 09:42
閱讀 1774·2021-07-25 21:37
閱讀 1074·2019-08-30 15:54
閱讀 2079·2019-08-30 15:53
閱讀 3057·2019-08-29 13:28
閱讀 2696·2019-08-29 10:56