Wil*_*rdy 16 python packaging namespaces pypi
我希望在接下来的几天内打包并上传一个我有PyPI的库,但是我对我的命名空间方法有点不确定.
我有一些其他不相关的项目采用类似的方法,并希望给它们所有相同的命名空间.例如:
abc.seoabc.ajaxabc.ecommerce问题是我不确定两个独立的包(例如鸡蛋)是否可能与同一个父命名空间共存.这种方法有问题,还是有办法绕过它?什么是最好的方法?
这些库不应该打包在一起,它们太不相关了.我希望在上传之前能够正确使用它,以避免在进行"官方"发布后出现令人痛苦的命名空间更改.
(NB abc不是真名,我希望我的问题免于广告)
UPDATE
我选择了以下内容,以便在没有安装setuptools的情况下对人们友善:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
Run Code Online (Sandbox Code Playgroud)
具体如下setup.py:
setup(
...
namespace_packages = ['rollyourown'],
...
Run Code Online (Sandbox Code Playgroud)
jd.*_*jd. 16
在每个项目基目录中,创建以下结构:
/setup.py
/abc/__init__.py
/abc/seo/
Run Code Online (Sandbox Code Playgroud)
/abc/__init__.py 包含:
__import__('pkg_resources').declare_namespace(__name__)
Run Code Online (Sandbox Code Playgroud)
setup.py 包含:
setup(...,
packages: ['abc', 'abc.seo'],
namespace_packages = ['abc']
...
)
Run Code Online (Sandbox Code Playgroud)
参考文档:命名空间包.
| 归档时间: |
|
| 查看次数: |
3617 次 |
| 最近记录: |