我編寫我的第一個項目在Python中,我不確定如何處理導入。我正在學校的電腦上工作,無法修改PYTHONPATH變量。我也在從各種計算機/操作系統開始研究這個項目(所以項目的路徑並不總是相同的)。PYTHONPATH無法修改時導入Python中的其他模塊的最佳方法?
我在不同的文件夾中有許多不同的模塊,它們都可以導入彼此。目前,我使用file_path = os.path.abspath(__file__)
從另一個模塊獲取一個模塊的路徑,然後通過目錄回溯,然後在文件夾中添加所需的模塊。然後將其添加到sys.path.append(symantic_root)
的PYTHONPATH中。
該系統的工作原理,但它結束了看起來很凌亂,有很多重複的代碼在每個模塊開始,例如:
import os
import sys
# Get the path to the directory above the directory this file is in, for any system
file_path = os.path.abspath(__file__)
root_path = os.path.dirname(os.path.dirname(file_path))
# Get the paths to the directories the required modules are in
symantic_root = os.path.join(root_path, "semantic_analysis")
parser_root = os.path.join(root_path, "parser")
# Add the directories to the path variable
sys.path.append(symantic_root)
sys.path.append(parser_root)
import semantic_analyser
import jaml
上更好的方式來構建一個項目中的任何意見如這將非常感激。
感謝您的回覆。當你說「提供接入點」時,我只是徘徊你的意思。這是否與__init__.py文件有關? –
@Alty。在你的問題中,你沒有說清楚你的模塊目前在什麼程度上可以重新構建文件夾,我不確定你使用的是什麼操作系統 - 所以「訪問點」只是一個普通的目錄,或者是一個符號鏈接等。關鍵是要找到一種方法,將所有模塊組合在一個包中 - 然後事情變得更加簡單(希望我不只是在這裏說明明顯)。 – ekhumoro