開發項目過程中,算法部分包及文件非常多,給它接入到web做個演示界面時,發現要更換個目錄執行時,大量的導入出現問題。
最開始有一部分是絕對路經,這種更換文件路經執行絕對會出錯,然後是大量的相對路經,其實單純的相對路經,在他指定的目錄下執行沒什麼問題,但如果在其他文件路經導入或引用,又會出現大量的導包路經問題。最後我是怎麼解決的呢?
最後全換成動態導入,即便你把整個項目切換到任何位置,或者再創建新的模塊進行開發及導入其他模塊時也不會出現這類問題了
import os
# 模塊導入部分
# 先用os庫中的,os.path.realpath(__file__)獲取到對應文件的全路經
# 再用os.path.dirname() 獲取到文件上一級的路經
module_path = os.path.dirname(os.path.realpath(__file__))
import sys
# 加入到python環境中
sys.path.append(module_path)
# 導入的文件路經,換成動態的即可
init_dic = ['--model', module_path+'/models/your_model']