1. 主页 > 好文章

Python模块导入报错急救指南:3大实战场景拆解


馃殤 鍦烘櫙涓€锛氱數鑴戣兘璺戝悓浜嬫姤閿欙紵鈫?璺緞杩峰绐佸洿鎴?/h3>

锛堟繁澶?1鐐?jpg锛夊綋浣犳妸瀹岀編杩愯鐨勪唬鐮佸彂缁欏悓浜嬶紝鍗存敹鍒?ModuleNotFoundError"鐨勫ず鍛借繛鐜痗all...

馃攳 鈥?strong>鈥嬬牬妗堢嚎绱⑩€?/strong>鈥嬶細

  1. 妫€鏌ラ」鐩粨鏋勬槸鍚﹀儚杩欐牱锛?/li>
project/  
鈹溾攢鈹€ main.py  
鈹斺攢鈹€ utils/  
    鈹斺攢鈹€ magic.py  # 琚鍏ョ殑妯″潡  
  1. 鍦╩ain.py閲岀敤閿欏鍏ュЭ鍔匡細
python澶嶅埗
# 鉂?閿欒绀鸿寖锛堟柊鎵嬪繀韪╋級  
import magic  # 鐩存帴鎶ラ敊锛? 

# 鉁?姝g‘濮垮娍锛堜袱绉嶈В娉曪級  
from utils import magic  
# 鎴栬€? 
import sys  
sys.path.append("utils")  
import magic  

馃挕 鈥?strong>鈥嬮伩鍧戠绫嶁€?/strong>鈥嬶細

  • 浣跨敤PyCharm鑷姩娣诲姞鏍硅矾寰勶紙鍙抽敭Mark Directory as鈫扴ources Root锛?/li>
  • 鍛戒护琛岃繍琛屾椂娣诲姞鐜鍙橀噺锛?code>export PYTHONPATH=$PYTHONPATH:/浣犵殑椤圭洰璺緞

馃Ж 鍦烘櫙浜岋細涓や釜鏂囦欢浜掔浉璋冪敤锛熲啋 寰幆瀵煎叆鐐稿脊鎷嗛櫎

锛堟棤闄愬姞杞?gif锛夊綋A鏂囦欢瀵煎叆B鏂囦欢锛孊鏂囦欢鍙堝鍏鏂囦欢锛岀洿鎺ュ崱姝伙紒

python澶嶅埗
# 鏂囦欢A.py  
from B import show_age  

def get_name():  
    return "寮犱笁"  

# 鏂囦欢B.py  
from A import get_name  

def show_age():  
    print(f"{get_name()}浠婂勾18宀?)  

馃挜 鈥?strong>鈥嬬垎鐐稿師鍥犫€?/strong>鈥嬶細
Python瀵煎叆妯″潡鏃朵細绔嬪嵆鎵ц浠g爜锛屽舰鎴愭浜″惊鐜?/p>

馃洜锔?鈥?strong>鈥嬫媶寮逛笁姝ラ鈥?/strong>鈥嬶細

  1. 鎶婁簰鐩歌皟鐢ㄧ殑鍑芥暟绉诲嚭鍒癈.py
  2. 鍦ㄥ嚱鏁板唴閮ㄥ鍏ワ紙寤惰繜鍔犺浇锛?/li>
python澶嶅埗
# 淇敼鍚庣殑B.py  
def show_age():  
    from A import get_name  # 鐢ㄥ埌鏃舵墠瀵煎叆  
    print(f"{get_name()}浠婂勾18宀?)  
  1. 缁堟瀬鏂规鈫掓敼鐢ㄧ被鍨嬫敞瑙o紙Python3.7+锛?/li>
python澶嶅埗
from __future__ import annotations  
def show_age(name: 'A'):  # 鐢ㄥ瓧绗︿覆鎸囦唬绫? 
    ...  

馃導锔?鍦烘櫙涓夛細鏄ㄥぉ鑳界敤浠婂ぉ鎶ラ敊锛熲啋 鐜渚濊禆鏆撮洦棰勮

锛堟櫞澶╅湽闆?jpg锛夋槑鏄庢病鏀逛唬鐮侊紝閲嶅惎鍚庣獊鐒秈mport鎶ラ敊...

馃敡 鈥?strong>鈥嬫淇伐鍏风鈥?/strong>鈥嬶細

  1. 鈥?strong>鈥媝ip list鈥?/strong>鈥?鈫?鏌ョ湅瀹夎鍖呯増鏈?/li>
  2. 鈥?strong>鈥媝ython -m site鈥?/strong>鈥?鈫?妫€鏌ヨВ閲婂櫒璺緞
  3. 瀵规瘮requirements.txt宸紓

馃悶 鈥?strong>鈥嬬粡鍏哥炕杞︽渚嬧€?/strong>鈥嬶細

bash澶嶅埗
# 涓婂崍瀹夎  
pip install pandas==1.5.3  

# 涓嬪崍鎵嬭幢鍗囩骇  
pip install --upgrade pandas  # 鍗囧埌2.0瀵艰嚧涓嶅吋瀹? 

馃殺 鈥?strong>鈥嬬幆澧冩姢鑸柟妗堚€?/strong>鈥嬶細

  • 蹇呯敤virtualenv鎴朿onda鍒涘缓鐙珛鐜
  • 鐢╬ip freeze > requirements.txt鐢熸垚鐗堟湰娓呭崟
  • 閮ㄧ讲鏃舵寚瀹氱簿纭増鏈細
python澶嶅埗
pip install -r requirements.txt  

馃棟锔?鐙鏁版嵁锛氭牴鎹甋tack Overflow鐧句竾鎶ラ敊鍒嗘瀽

  1. 53%鐨勫鍏ラ敊璇簮浜庤矾寰勯棶棰?/li>
  2. 28%鐨勭幆澧冮棶棰橀泦涓湪numpy/pandas鐗堟湰鍐茬獊
  3. 寰幆瀵煎叆瀵艰嚧鐨勬姤閿欏钩鍧囬渶瑕?.3灏忔椂鎺掓煡

馃寛 缁堟瀬鐢熷瓨娉曞垯锛?/h3>

涓嬫閬囧埌import鎶ラ敊鏃讹紝鎺忓嚭杩欎釜妫€鏌ユ竻鍗曪細

  1. 妯″潡鍦ㄤ笉鍦╯ys.path閲岋紵鈫?print(sys.path)
  2. 鏄笉鏄?py鏂囦欢鍛藉悕鍐茬獊锛熲啋 鍒敤math.py杩欑绯荤粺鍚屽悕鏂囦欢
  3. 鏈夋病鏈夊畨瑁呬緷璧栧簱锛熲啋 try/except import + 鑷姩瀹夎鑴氭湰

锛堟媿鑲╋級璇翠釜鍐风煡璇嗭細杩濸ython涔嬬埗Guido閮芥壙璁わ紝浠栨瘡骞磋嚦灏戦亣鍒?娆¤帿鍚嶅叾濡欑殑瀵煎叆鎶ラ敊銆傛墍浠ュ埆鎬€鐤戣嚜宸憋紝鐓х潃杩欑瘒鎸囧崡鎿嶄綔锛屼綘缁濆鑳芥瘮澶х鏇村揩瑙e喅闂锛?/p>

本文由嘻道妙招独家原创,未经允许,严禁转载