python項目內無法導入自己的庫


不同路徑下導入自己的文件

一、錯誤示范

在測試項目內。目錄結構如下:

在這里,假設我們想在utils/app_loadimg中使用test/test_import.py中的pass_test變量
測試代碼如下:

# test/test_import.py代碼
pass_test = "測試成功"

# utils/app_loadimg.py的代碼
from Img2Web.test.test_import import pass_test

print(pass_test)

在pycharm中導入是正常的,輸出結果為:

測試成功

在CMD中、app_loadimg.py所在目錄下執行文件:

Traceback (most recent call last):
  File "app_loadimg.py", line 8, in <module>
    from Img2Web.test.test_import import pass_test
ModuleNotFoundError: No module named 'Img2Web'

在CMD中、app_loadimg.py父目錄下執行文件:

Traceback (most recent call last):
  File "app_loadimg.py", line 8, in <module>
    from Img2Web.test.test_import import pass_test
ModuleNotFoundError: No module named 'Img2Web'

備注
不難發現,在這些腳本中運行文件就報錯了,這種導入方式肯定會有問題

二、正確的姿勢

import os
import sys
sys.path.append(os.path.abspath(__file__).split("Img2Web")[0])

from Img2Web.test.test_import import pass_test

使用sys.path.append()將Img2Web的目錄添加到環境變量里,就可以在任意地址執行了。需要注意的是sys.path.append()必須先執行,但是在pycharm里會顯示PEP8格式有問題,這里沒有辦法只能取舍了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM