我计划在接下来的几天里将自己编写的库打包并上传到PyPI,但我对命名空间的处理方法有些不确定。
我的一些项目之前无关联,但采用了相似的方法,我想给它们都分配同一个命名空间。例如:
Library 1 命名空间:
问题是,我不确定两个独立的包(比如egg文件)是否可以共存于同一个父命名空间中。这种方法是否有问题,或者有没有解决方法?最佳的处理方法是什么?
这些库不应该被打包在一起,因为它们太不相关了。在发布“正式”版本之前,我希望在上传之前就把它搞清楚,以避免痛苦的命名空间更改。
(注:abc不是真实名称,我只是为了避免广告而这样命名。)
更新:
出于对未安装setuptools的用户的考虑,我选择了以下方式:
我的一些项目之前无关联,但采用了相似的方法,我想给它们都分配同一个命名空间。例如:
Library 1 命名空间:
abc.seo
Library 2 命名空间:abc.ajax
Library 3 命名空间:abc.ecommerce
等等问题是,我不确定两个独立的包(比如egg文件)是否可以共存于同一个父命名空间中。这种方法是否有问题,或者有没有解决方法?最佳的处理方法是什么?
这些库不应该被打包在一起,因为它们太不相关了。在发布“正式”版本之前,我希望在上传之前就把它搞清楚,以避免痛苦的命名空间更改。
(注:abc不是真实名称,我只是为了避免广告而这样命名。)
更新:
出于对未安装setuptools的用户的考虑,我选择了以下方式:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
在 setup.py
中使用以下内容:
setup(
...
namespace_packages = ['rollyourown'],
...
mx
包了吗?可以看看它们的例子。然后,你可以基于那个模式提出更加具体的问题。 - S.Lottmx
包似乎有一个非常复杂的安装过程,我会尽力看看它们是否有任何特殊的命名空间问题解决方法。 - Will Hardy