我正在尝试导入一个函数。文件夹/文件的名称空间由工作目录中的文件占用。我正在尝试找到一种可以导入此内容的方法:
(下面的package_1
和package_2
是源文件夹)
package_1\
foo\
__init__.py
bar.py (myfunc, myfunc2 in this file)
package_2\
subpackage_2\
__init__.py
foo.py
bar.py
hoo.py
我希望将myfunc
和myfunc2
导入到hoo.py
中
我通常会做的:
from foo.bar import myfunc, myfunc2
无论如何,foo
已经被使用(也是bar
,但我认为这没什么大不了的)
我可以通过导入__init__.py
中的subpackage_2
然后重新导入来使它起作用:
__init__.py
:
from foo.bar import myfunc, myfunc2
hoo.py
:
from subpackage_2 import myfunc, myfunc2
但是我不想导入整个子包
我一直在尝试从package_2
中暂时删除sys.path
然后导入,然后再添加package_2
。我真的找不到正确的方法这个。
答案 0 :(得分:0)
我想我已经找到了答案(或者至少是可行的)。尽管有更好的一个,我很想知道。
bar = __import__('foo.bar') # I did initially use from_list but looks like I don't need it
myfunc, myfunc2 = bar.myfunc, bar.myfunc2