python3.3 +如何定义包变量(__init__.py),而不通过__init __声明包'closed'。py

时间:2017-08-18 18:16:46

标签: python python-3.x python-3.5 python-import python-3.3

我有两个repos打算在包corp中定义东西,这是我们公司代码使用的命名空间。 python3.5:

  • <repoA>/corp/foo/bar
  • <repoB>/corp/foo/zing/zam

问题在于A中存在<repoA>/corp/__init__.py在包级别定义一些代码。

这可以标记'关闭'corp包关于导入分辨率(根据我对&gt; = python3.3中的设计的理解,这似乎是正确的)。因此代码不能import corp.foo.zing,因为它不会像<repoB>/corp中那样处理corp中的任何内容(repoA位于repoB中的PYTHONPATH之前)。

<repoA>是一个长期的中央回购,具有公司安全,dbo等功能 - 因为(原因)它非常'遗留',我们无法直接添加我们的代码。所以我们有自己的回购B,<repoA><repoB>在使用B的系统上PYTHONPATH

有没有办法对事物进行编码,以便客户端代码可以保持相同

  • 调用例如import corp ; print(corp.some_package_var)

<repoB>/corp/foo/zing中的代码仍然可以通过正常的import corp.foo.zing来解决? (如果客户端代码没有任何区别,我 AM 能够更改repoA。如果客户端代码需要更改,它就不是完全不可能的了,但它变得非常

0 个答案:

没有答案