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