[英]python: include files from other directories into a project
我有多個應該使用多個共享文件的python項目,但我不知道如何在python中執行此操作。
如果我只是將文件復制到pyhton工作目錄中,則可以正常使用:
from HBonds import calculateHBondsForSeveralReplicas, compareSameShapeHBMatrices, calculateHBonds
但我不想復制它。 我想從以下位置包括它:/ home / b / data / pythonWorkspace / util / HBonds
對我來說,這樣做是有意義的(但它不起作用):
from /home/b/data/pythonWorkspace/util/HBonds/HBonds.py import calculateHBondsForSeveralReplicas, compareSameShapeHBMatrices, calculateHBonds
我怎樣才能做到這一點?
對於第三方庫,最好以庫存方式安裝它們-既可以安裝到系統的site-packages
,也可以安裝到virtualenv
。
對於正在運行機器的項目,一個可維護的解決方案是將其根目錄添加到PYTHONPATH
以便您可以從任何位置import <top_level_module>.<submodule>.<etc>
。 那就是我們在上一份工作中所做的。 這里的主要優點是瑣碎的代碼庫更新和切換。
另一種方法是使用相對導入 ,但它是用於包內引用的,因此您不必在任何地方重復包的名稱。 如果代碼中許多其他不相關的部分使用相同的模塊,則將共享的部分制作為單獨的程序包可能會更方便,這對於所有程序包都是依賴的。
您必須確保PYTHONPATH包含該目錄的路徑,如先前答案中所指出的那樣。
或者,您可以使用更簡單的方法:使用類似這樣的代碼使其在運行時可用。
import os
import sys
folder = os.path.dirname('/home/b/data/pythonWorkspace/util/')
if dossier not in sys.path:
sys.path.append(folder)
from HBonds import HBonds
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.