包装常见的python命名空间

栏目: Python · 发布时间: 7年前

内容简介:http://stackoverflow.com/questions/5064951/packaging-common-python-namespaces

我想在未来几天打包和上传一个我已经到PyPI的库,但是我对某个命名空间的方法有点不确定.

我有一些其他不相关的项目,具有类似的方法,并希望给他们所有相同的命名空间.例如:

> Library 1命名空间:abc.seo

> Library 2命名空间:abc.ajax

> Library 3命名空间:abc.ecommerce

>等

问题是我不确定两个单独的包(例如,蛋)是否可能与同一父命名空间共存.这个方法是有问题的,还是有办法呢?最好的方法是什么?

图书馆不应该打包在一起,它们是无关紧要的.我希望在上传之前正确获取它,以避免在进行“官方”发布之后痛苦的命名空间更改.

(NB abc不是真名,我想让我的问题免于广告)

UPDATE

我去了以下,对没有安装 工具 的人来说很好:

try:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)

在setup.py中执行以下操作:

setup(
    ...
    namespace_packages = ['rollyourown'],
    ...

在每个项目基础目录中,创建以下结构:

/setup.py
/abc/__init__.py
/abc/seo/

/abc/__init__.py包含:

__import__('pkg_resources').declare_namespace(__name__)

setup.py包含:

setup(...,
    packages: ['abc', 'abc.seo'],
    namespace_packages = ['abc']
    ...
)

参考文献: namespace packages .

http://stackoverflow.com/questions/5064951/packaging-common-python-namespaces


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Tornado

Introduction to Tornado

Michael Dory、Adam Parrish、Brendan Berg / O'Reilly Media / 2012-3-28 / USD 23.99

Tornado is a scalable, non-blocking web server and web application framework written in Python. It is also light-weight to deploy, fun to write for, and incredibly powerful. Tornado was written with p......一起来看看 《Introduction to Tornado》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具