日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

關(guān)于Python包導(dǎo)入報(bào)錯(cuò)的問(wèn)題總結(jié)_python

作者:大大毛丶aj ? 更新時(shí)間: 2023-05-18 編程語(yǔ)言

Python包導(dǎo)入報(bào)錯(cuò)的問(wèn)題

首先,一般來(lái)說(shuō),寫一個(gè)小demo可能一個(gè)文件就夠了,但是要是做一個(gè)小項(xiàng)目,可能需要拆分成很多零散的文件,放在不同的文件夾里面調(diào)用,這個(gè)就稱之為模塊(包)

Python的導(dǎo)包是一件令人頭疼的事情,當(dāng)文件多了之后,同樣的導(dǎo)入方式可能在不同的場(chǎng)合遇到解釋器拋出異常。

錯(cuò)誤記錄

1. ModuleNotFoundError: No module named ‘public’

ModuleNotFoundError:沒(méi)有名為“public”的模塊

模塊間的引用:

錯(cuò)誤的

正確的方式:

但是如果在里面運(yùn)行代碼,將會(huì)收到

2. ImportError: attempted relative import with no known parent package

ImportError:嘗試在沒(méi)有已知父包的情況下進(jìn)行相對(duì)導(dǎo)入

(適合相鄰文件的導(dǎo)入)

如果真想用里面的方法做測(cè)試,嘗試

from public import print_date
or
import public

同樣使用此也會(huì)拋出ImportError異常 from utils.public import print_date -> ModuleNotFoundError: No module named 'utils'

但是如果在包外調(diào)用包內(nèi)的方法,又會(huì)報(bào)錯(cuò)

這里又需要把

from public import print_date

改回

from .public import print_date

其中 import .public 是不支持的,編輯器也會(huì)智能顯示錯(cuò)誤波浪線

導(dǎo)入之前捕獲異常 ImportError

3. ImportError: attempted relative import beyond top-level package

ImportError:嘗試相對(duì)導(dǎo)入超出頂級(jí)包 (包內(nèi)導(dǎo)包外) - 需要在這個(gè)層級(jí)之上再建立一個(gè)文件夾來(lái)管理,把現(xiàn)有的文件夾當(dāng)作子文件夾管理

······

目錄結(jié)構(gòu)(部分文件內(nèi)容被刪掉了):

關(guān)于 __init__.py 文件的作用,當(dāng)在包外面使用 from xxx imprt * 這中方式導(dǎo)入時(shí),會(huì)導(dǎo)入 __all__ = ['app'] 里面的,如果沒(méi)有,就不能像下面一樣使用

正常是

# from utils import *
from utils import app

def putfile():
    print('test putfile')

if __name__ == '__main__':
    app.main_run()

很明顯,這樣不行

4. ImportError: cannot import name ‘print_date’ from partially initialized module ‘utils.public’ (most likely due to a circular import) (D:\xxx\xxx\public.py)

ImportError:無(wú)法從部分初始化的模塊“utils.public”導(dǎo)入名稱“print_date”(很可能是由于循環(huán)導(dǎo)入)(D:\xxx\xxx\public.py)

這種情況把真正不依賴當(dāng)前項(xiàng)目本身(公有變量等)的方法,再提取出來(lái)寫到一個(gè)文件里面

總結(jié)

原文鏈接:https://blog.csdn.net/qq_34580627/article/details/125234401

欄目分類
最近更新