python:将其他目录中的文件包含到项目中

2024-09-30 02:32:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个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

我该怎么做?你知道吗


Tags: 文件项目fromimport目录homepyhtondata
2条回答

对于第三方库,最好将它们安装在stock way上—要么安装到系统的site-packages,要么安装到virtualenv。你知道吗

对于您正在运行的机器上积极开发的项目,一个可维护的解决方案是将它们的根目录添加到PYTHONPATH,这样您就可以从任何地方import <top_level_module>.<submodule>.<etc>That's what we did at my previous occupation.这里的主要优点是简单的代码库更新和切换。你知道吗

另一种方法是使用relative imports,但它用于包内引用,这样就不必到处重复包的名称。如果代码中许多其他不相关的部分使用相同的模块,那么将共享部分作为一个独立的包可能更方便,因为它是所有这些部分的依赖项。你知道吗

您必须确保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

相关问题 更多 >

    热门问题