最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python導(dǎo)入其他路徑下的文件報錯的問題及解決

 更新時間:2026年01月21日 09:02:13   作者:g11023225  
文章主要討論了Python模塊導(dǎo)入的路徑問題,并提供了幾種解決方案,包括使用絕對路徑和修改sys.path等,通過這些方法,可以解決在導(dǎo)入模塊時出現(xiàn)的ModuleNotFoundError問題,特別是在使用打包工具如pyinstaller時

1. 代碼結(jié)構(gòu)

如下兩圖所示,當前代碼文件分別有三個:

test.py dir_a.py dir_b.py,其中主代碼為test.py,該文件在主目錄test文件夾下,dir_a.py dir_b.py在和test.py同級的DIR文件夾下。

其中test.py導(dǎo)入了DIR文件夾中的dir_a.py文件,而dir_a.py文件導(dǎo)入了同目錄下的dir_b.py文件。

2. 錯誤的示例

2.1 我一開始的導(dǎo)入代碼如下

test.py的導(dǎo)入代碼部分:

# test.py
from DIR import dir_a

dir_a.py文件導(dǎo)入dir_b.py的代碼部分:

# dir_a.py
import dir_b

這樣的結(jié)果是,運行dir_a.py文件是沒問題的,但是運行test.py時就會報錯:ModuleNotFoundError: No module named 'dir_b',應(yīng)該是找不到 dir_b.py文件。

其實這就是使用相對路徑導(dǎo)入模塊產(chǎn)生的問題,把相對路徑改為絕對路徑就行了。

注意絕對路徑一定是要從當前環(huán)境的跟目錄開始! 或者可以把dir_a.py dir_b.py文件所在的絕對路徑添加到sys.path中。

2.2 將路徑添加到sys.path中(打包不成功)

我在網(wǎng)絡(luò)上查了好久,產(chǎn)生上面的問題是當前sys.path中缺少了DIR文件夾路徑的問題,可以給添上,將test.py的導(dǎo)入代碼部分修改為如下:

# test.py
import sys
sys.path.append('DIR')
from DIR import dir_a

修改完之后確實不會報錯了,但是使用pyinstallerNuitka打包后,一樣還是會報錯,如下圖,錯誤原因還是找你到dir_b

錯誤原因分析:

之所以打包后會出現(xiàn)錯誤,經(jīng)過我的實驗發(fā)現(xiàn),pyinstaller沒有把dir_b.py文件給打包進去,不知道為啥會出現(xiàn)這種情況,有知道的可以評論告訴我下。

2.3 使用絕對路徑

網(wǎng)絡(luò)上有另一種方案就是只修改dir_a.py文件中的內(nèi)容,修改后的dir_a.py中的導(dǎo)入部分代碼:

# dir_a.py
if __package__ is None or __package__ == '':
    # uses current directory visibility
    import dir_b
else:
    # uses current package visibility
    from . import dir_b

這樣再運行代碼dir_a.py test.py都不會有問題,而且打包后也不會報錯。但是這樣代碼太臃腫了,建議使用2.4的方案

2.4 終極解決方案

只修改dir_a.py文件中引入模塊的部分,修改為:

# dir_a.py
from DIR import dir_b

這樣再運行代碼dir_a.py test.py都不會有問題。

注意:

其實這里有一個很重要的點,就是絕對路徑一定要從當前環(huán)境的根目錄開始算。上面的寫法默認test文件夾就是當前環(huán)境的根目錄,這樣的話是沒問題的。但是假如test文件夾的上一級文件夾MyProj才是編譯環(huán)境的根目錄時(如下圖),運行test.py不會報錯,但是運行dir_a.py是會報錯的。

這時候dir_a.py文件中就應(yīng)該這樣改:from test.DIR import dir_b

總結(jié)

代碼書寫時最好是代碼都在一個目錄下,這樣就不會出現(xiàn)上面的問題了。如果必須要用的話,一定要注意模塊導(dǎo)入問題,修改成本文提出的方式。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于python中theano庫的線性回歸

    基于python中theano庫的線性回歸

    這篇文章主要為大家詳細介紹了基于python中theano庫的線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Flask創(chuàng)建并運行數(shù)據(jù)庫遷移的實現(xiàn)過程

    Flask創(chuàng)建并運行數(shù)據(jù)庫遷移的實現(xiàn)過程

    Flask創(chuàng)建并運行數(shù)據(jù)庫遷移的過程是一個涉及多個步驟的操作,旨在幫助開發(fā)者在開發(fā)過程中管理數(shù)據(jù)庫模式的變化,而不需要手動地刪除和重建數(shù)據(jù)庫表,從而避免數(shù)據(jù)丟失,以下是一個詳細的步驟說明,需要的朋友可以參考下
    2024-09-09
  • 如何用Python來理一理紅樓夢里的那些關(guān)系

    如何用Python來理一理紅樓夢里的那些關(guān)系

    這篇文章主要介紹了用Python來理一理紅樓夢里的那些關(guān)系代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python使用Selenium實現(xiàn)模擬登錄的示例代碼

    Python使用Selenium實現(xiàn)模擬登錄的示例代碼

    Selenium(本文基于python3.8)是一個功能強大的自動化測試工具,它可以用于模擬用戶在瀏覽器中的行為,比如點擊、輸入、滾動等等,本教程將詳細介紹如何使用Python編寫一個模擬登錄地爬蟲,使用XPath等多種元素匹配方法,需要的朋友可以參考下
    2023-08-08
  • python判斷字符串是否是json格式方法分享

    python判斷字符串是否是json格式方法分享

    這篇文章主要介紹了python判斷字符串是否是json格式方法分享,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python實現(xiàn)同級目錄調(diào)用的示例詳解

    python實現(xiàn)同級目錄調(diào)用的示例詳解

    同級目錄指的是位于同一級別的文件夾,這些文件夾具有相同的層級結(jié)構(gòu),它們相互平行,沒有一個被包含在另一個之中,本文將給大家介紹python實現(xiàn)同級目錄調(diào)用的示例,需要的朋友可以參考下
    2024-06-06
  • Python OS模塊實例詳解

    Python OS模塊實例詳解

    這篇文章主要介紹了Python OS模塊,結(jié)合實例形式總結(jié)分析了Python使用OS解析文件路徑、判斷文件、目錄等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • graphviz 最新安裝教程適用初學(xué)者

    graphviz 最新安裝教程適用初學(xué)者

    Graphviz 是一個自動排版的作圖軟件,可以生成 png pdf 等格式,這篇文章主要介紹了graphviz 2022最新安裝教程適用初學(xué)者,需要的朋友可以參考下
    2023-02-02
  • 詳細總結(jié)Python類的多繼承知識

    詳細總結(jié)Python類的多繼承知識

    Python類的多繼承知識是非常易于新手理解的,如果你是剛剛?cè)腴TPython的話,歡迎參考本篇文章,本文對Python類的多繼承知識作出了非常詳細的解釋,還有相關(guān)代碼參考哦。
    2021-05-05
  • 10行Python代碼計算汽車數(shù)量的實現(xiàn)方法

    10行Python代碼計算汽車數(shù)量的實現(xiàn)方法

    這篇文章主要介紹了10行Python代碼計算汽車數(shù)量的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

延吉市| 调兵山市| 四子王旗| 湟中县| 巧家县| 敖汉旗| 永靖县| 湖州市| 始兴县| 贺兰县| 南漳县| 全椒县| 城口县| 康保县| 舟山市| 双牌县| 乐亭县| 衡山县| 古蔺县| 虞城县| 姚安县| 开化县| 曲阳县| 昌邑市| 德阳市| 镇平县| 上蔡县| 高淳县| 香河县| 新建县| 绍兴县| 红河县| 乐东| 河东区| 华宁县| 沾益县| 铅山县| 封丘县| 邳州市| 镇平县| 石首市|