相关疑难解决方法(0)

如何在Python中创建命名空间包?

在Python中,命名空间包允许您在多个项目中传播Python代码.当您想要将相关库作为单独的下载发布时,这非常有用.例如,使用目录Package-1Package-2in PYTHONPATH,

Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py
Run Code Online (Sandbox Code Playgroud)

最终用户可以import namespace.module1import namespace.module2.

定义命名空间包的最佳方法是什么,因此多个Python产品可以在该命名空间中定义模块?

python namespaces package

132
推荐指数
3
解决办法
5万
查看次数

打包常见的python命名空间

我希望在接下来的几天内打包并上传一个我有PyPI的库,但是我对我的命名空间方法有点不确定.

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

  • 库1命名空间: abc.seo
  • 库2命名空间: abc.ajax
  • 库3命名空间: abc.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)

python packaging namespaces pypi

16
推荐指数
1
解决办法
3617
查看次数

标签 统计

namespaces ×2

python ×2

package ×1

packaging ×1

pypi ×1