我有两个repo打算在包corp
中定义东西,这个名称空间用于我们公司的代码。Python3.5:
<repoA>/corp/foo/bar
<repoB>/corp/foo/zing/zam
问题是在包级别存在定义一些代码的<repoA>/corp/__init__.py
。你知道吗
这似乎标志着corp
包在导入分辨率方面是“关闭的”(根据我对>;=python3.3中设计的理解,这似乎是正确的)。因此,代码不能import corp.foo.zing
,因为它不会将<repoB>/corp
中的任何内容视为包corp
(repoA
在PYTHONPATH
中的repoB
之前)。你知道吗
<repoA>
是一种长期存在的中央回购,具有诸如公司安全性、dbo之类的功能——因为(原因)它是相当“遗留”的,我们不能直接向它添加代码。所以我们有自己的repo B,<repoA>
和<repoB>
都在使用B的系统上
有没有一种方法来编写代码,使客户机代码保持一致
import corp ; print(corp.some_package_var)
但是<repoB>/corp/foo/zing
中的代码仍然可以通过正常的import corp.foo.zing
解析?(IAM能够更改repoA
如果客户端代码看不到任何差异。客户机代码是否需要更改并不是完全不可能的,但是如果没有可靠的发布过程,考虑到广泛的内部使用,这将变得非常困难)
目前没有回答
相关问题 更多 >
编程相关推荐