【问题标题】:Insert Python Packages from Separate Directory into a different Namespace将 Python 包从单独的目录插入到不同的命名空间中
【发布时间】:2019-04-20 01:51:11
【问题描述】:

假设在我的 Python 路径中,我有命名空间 foo。我在名为barx.pyy.pyz.py 的单独目录中(不在 python 路径中)有模块。所以布局可能看起来像这样:

|--/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 xfrom foo.x import my_function 的事情?理想情况下寻找适用于 Python 2.7 和 Python 3.6 的解决方案,但这并不严格。

编辑:我想补充一点,在理想情况下,bar/ 也可以有子文件夹或子包。

【问题讨论】:

    标签: python python-3.x python-2.7 path site-packages


    【解决方案1】:

    忘记了我在这里问过这个问题,但是,如果其他人最终来到这里,这就是我最终要做的。

    # /python/path/site-packages/foo/__init__.py
    __path__.append("/some/other/directory/bar/")
    

    特定命名空间的 __path__ 告诉 Python 该命名空间应该查看哪些目录。

    【讨论】:

      猜你喜欢
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2010-09-12
      • 1970-01-01
      • 2012-02-02
      • 2012-12-04
      • 1970-01-01
      相关资源
      最近更新 更多