我想在external
我的程序中添加一个包,其中应包括它使用的所有食谱和第三方包。我不想强迫任何人(包括我自己)安装这些软件包,更不用说版本不兼容了。我只想将它们放入自己的子文件夹并使用它们。当然,它们来自各种来源。
文件夹结构应如下所示:
| main.py
|---[external]
|---[networkx]
| | ...
|---[xlrd]
| | ...
| __init__.py
| recipe1.py
| recipe2.py
我想在我的程序中通过以下方式访问包和食谱:
import external
import external.xlrd
from external import networkx as nx
import external.recipe1
from external import recipe2 as magic
from external import *
然而,任何包都可能包含绝对导入,这可能导致ImportError
假设 anexternal
有一个空__init__.py
:
>>> import external.networkx
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".\external\networkx\__init__.py", line 46, in <module>
from networkx import release
ImportError: No module named 'networkx'
有没有一种简单的方法来制作这样的外部包装?