摘要:當(dāng)進(jìn)入命令行之后,我們運(yùn)行時(shí)的運(yùn)行環(huán)境實(shí)際是在目錄下因此解析包就失敗了。解決方法,擴(kuò)展運(yùn)行環(huán)境,把根目錄引入運(yùn)行環(huán)境
最近在用python的flask時(shí)候發(fā)現(xiàn)一點(diǎn)問(wèn)題,代碼組織如下
|-app |-__init__.py |-views.py |-operations.py |-xxx.py |-run.py
按照python的約定,app作為一個(gè)包(package),引入到run.py當(dāng)中
from app import app
在app/__init__.py中加入需要引入的包
from app import views,operations,xxx
按照這樣的結(jié)構(gòu)運(yùn)行整個(gè)項(xiàng)目是ok的
operations.py 寫了一些后臺(tái)任務(wù)的邏輯,其中有一些對(duì)象是從__init__.py當(dāng)中引入的
from app import app, db_session, alarm_user, logger
多帶帶運(yùn)行operations.py來(lái)調(diào)試一部分代碼時(shí)候發(fā)現(xiàn)了問(wèn)題
if __name__ == "__main__": #print get_password() #print get_replication() print refresh_instance()
在PyCharm當(dāng)中運(yùn)行正常,但在命令行環(huán)境下無(wú)法運(yùn)行,會(huì)出現(xiàn)如下錯(cuò)誤:
#python operations.py Traceback (most recent call last): File "operations.py", line 3, infrom app import app, db_session, alarm_user, logger ImportError: No module named app
思索之后發(fā)現(xiàn)了玄機(jī),PyCharm運(yùn)行是以項(xiàng)目的根目錄作為程序運(yùn)行環(huán)境的。當(dāng)進(jìn)入命令行之后,我們運(yùn)行operations.py時(shí)的運(yùn)行環(huán)境實(shí)際是在app/目錄下,因此解析app包就失敗了。
解決方法,擴(kuò)展python運(yùn)行環(huán)境,把根目錄引入運(yùn)行環(huán)境
#!/bin/env python # -*- coding: utf-8 -*- import sys sys.path.append("../") from app import app, db_session, alarm_user, logger
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38010.html
摘要:摘要本文將用戶安裝時(shí)遇到的常見問(wèn)題列舉如下,希望在遇到類似問(wèn)題時(shí)可供借鑒。若不存在,確認(rèn)此問(wèn)題。安裝后報(bào)這通常是由于遇到了依賴問(wèn)題。上安裝時(shí)報(bào)嘗試使用上安裝仍然報(bào)這是由于系統(tǒng)完整性保護(hù)導(dǎo)致的。此后在終端中運(yùn)行此后再行安裝。 摘要: 本文將用戶安裝 PyODPS 時(shí)遇到的常見問(wèn)題列舉如下,希望在遇到類似問(wèn)題時(shí)可供借鑒。在參考下列步驟之前,請(qǐng)首先嘗試卸載并重裝 PyODPS。卸載的步驟為執(zhí)...
摘要:內(nèi)存池機(jī)制提供了對(duì)內(nèi)存的垃圾收集機(jī)制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。為了加速的執(zhí)行效率,引入了一個(gè)內(nèi)存池機(jī)制,用于管理對(duì)小塊內(nèi)存的申請(qǐng)和釋放。 注:答案一般在網(wǎng)上都能夠找到。1.對(duì)if __name__ == main的理解陳述2.python是如何進(jìn)行內(nèi)存管理的?3.請(qǐng)寫出一段Python代碼實(shí)現(xiàn)刪除一個(gè)list里面的重復(fù)元素4.Python里面如何拷貝一個(gè)對(duì)象?...
摘要:容器迭代器生成器簡(jiǎn)單介紹提供了多種數(shù)據(jù)類型來(lái)存放數(shù)據(jù)項(xiàng)。如下迭代器可以被函數(shù)調(diào)用并不斷返回下一個(gè)值的對(duì)象為迭代器,。 python:容器、迭代器、生成器 簡(jiǎn)單介紹 python提供了多種數(shù)據(jù)類型來(lái)存放數(shù)據(jù)項(xiàng)。之前已經(jīng)介紹了幾個(gè)python中常用的容器,分別是列表list、元組tuple、字典dict和集合set。這幾種數(shù)據(jù)結(jié)構(gòu)在Python中是非常重要的部分,尤其是各自的特性部分。掌握...
摘要:安裝安裝用于數(shù)據(jù)科學(xué)的的最佳方法是使用發(fā)行版。但這只是展示了構(gòu)建數(shù)據(jù)科學(xué)問(wèn)題的不同方式中的機(jī)器學(xué)習(xí)這是一個(gè)重要的主題,機(jī)器學(xué)習(xí)正在風(fēng)靡世界,是數(shù)據(jù)科學(xué)家工作的重要組成部分。 作為編程界的頭牌名媛,Python平易近人的態(tài)度和精明婉約的靈動(dòng)深得各個(gè)大佬歡心。比如:人工智能、web開發(fā)、爬蟲、系統(tǒng)運(yùn)維、數(shù)據(jù)分析與計(jì)算等等。這幾位風(fēng)流多金的行業(yè)精英隨便哪個(gè)都能逆轉(zhuǎn)未來(lái)。 本文為你精心準(zhǔn)備了一...
閱讀 3173·2021-09-22 15:54
閱讀 4097·2021-09-09 11:34
閱讀 1832·2019-08-30 12:48
閱讀 1220·2019-08-30 11:18
閱讀 3514·2019-08-26 11:48
閱讀 978·2019-08-23 17:50
閱讀 2181·2019-08-23 17:17
閱讀 1313·2019-08-23 17:12