在包的__init__
方法中,foo
您可以更改__path__
以使其在其他目录中查找其模块。
因此,创建一个名为的目录secret
,并将其放入您的私有Subversion存储库中。在secret
您的专有权bar.py
。在__init__.py
publicfoo
包中输入以下内容:
__path__.insert(0,'secret')
这将意味着谁拥有了私人仓库等用户secret
目录,他们将获得专有bar.py
的foo.bar
作为secret
是在搜索路径的第一个目录。对于其他用户,Python将无法找到secret
,并期待在接下来的目录中__path__
,因此将加载正常bar.py
的foo
。
因此它将看起来像这样:
private
└── trunk/
└── secret/
└── bar.py
public
└── trunk/
├── __init__.py
└── foo/
├── __init__.py
├── bar.py
├── baz.py
└── quux.py