我有这样的目录结构。。。
dir/
build.py
dir2
dir3/
packages.py
现在build.py
需要packages.py
——注意dir2
不是一个包。
那么,将packages.py
加载到build.py
(目录结构不能更改)中的最佳方法是什么
编辑
sys.path.append
解决方案看起来不错——但是有一件事——我需要很少使用packages.py
文件——并且保留一个sys.path
,其中包含一个很少使用但位于前端的目录——这是最好的事情吗?
编辑II
我认为imp
解决方案是最好的。
import imp
packages = imp.load_source('packages', '/path/to/packages.py')
编辑三
注意imp.load_source
和其他一些函数have been deprecated。所以你今天应该使用imp.load_module
。
fp, pathname, description = imp.find_module('packages', '/path/to/packages.py')
try:
mod = imp.load_module('packages', fp, pathname, description)
finally:
# since we may exit via an exception, close fp explicitly
if fp:
fp.close()
你可以:
或者更好:
或者(从这里取:How to import a module given the full path?)
“唯一正确的方法”是第三种吗?-避免直接弄乱
sys.path
我遇到了同样的问题,我解决了它。
__init__.py
添加到dir1, dir2, dir3 ...
bulid.py
要导入packages.py
,请在bulid.py中写入:相关问题 更多 >
编程相关推荐