假设在我的Python路径中,我有命名空间foo
。我在名为bar
的单独目录中(不在python路径中)有模块:x.py
,y.py
,z.py
。因此,布局可能看起来像这样:
|--/python/path/site-packages/foo/
|----__init.py__
|--...
|--/some/other/directory/bar/
|----__init__.py
|----x.py
|----y.py
|----z.py
因此,考虑到foo已经在我的路径中,我可以轻松地执行import foo
。但是,是否可以在foo/__init__.py
中添加任何形式的黑魔法,以便在我的Python shell中开始做类似from foo import x
或from foo.x import my_function
的事情?理想情况下,寻找一种可以在Python 2.7和Python 3.6上运行的解决方案,但这并不严格。
编辑:我想补充一点,在理想情况下,bar/
也可以具有子文件夹或子包。
答案 0 :(得分:0)
忘了我在这里问过这个问题,但是,如果其他人最终在这里,这就是我最终要做的。
# /python/path/site-packages/foo/__init__.py
__path__.append("/some/other/directory/bar/")
特定名称空间的__path__
告诉Python该名称空间应查看的目录。