簡體   English   中英

python:將其他目錄中的文件包含到項目中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM