![]() |
1
55
DR:
在python 3.3上,你不必做任何事情,只要不放任何东西
python 3.3引入了隐式名称空间包,请参见 PEP 420 .
这意味着现在有三种类型的对象可以由
包也是模块,但这里我说“模块”时是指“非包模块”。
首先扫描
模块和常规包
当你这样做的时候
那么常规包和命名空间包是如何混合的呢?通常不会,但老的
如果现有的常规包
…遗留行为是添加任何其他
有规律的
在其搜索路径上的包
因此,您可以具有以下目录结构:
…只要两个
|
![]() |
2
77
有一个标准模块,叫做 pkgutil ,和你一起 无法将模块“append”到给定的命名空间。 使用您提供的目录结构:
你应该把这两行都放进去
(*因为-除非你陈述了他们之间的依赖关系-你不知道他们中的哪一个会首先被识别-见 PEP 420 更多信息) 作为 documentation 说:
从现在开始,您应该能够独立地分发这两个包。 |
![]() |
3
5
This section should be pretty self-explanatory.
简而言之,将名称空间代码放入
|
![]() |
4
2
这是一个古老的问题,但最近有人在我的博客上评论说,我关于命名空间包的文章仍然是相关的,所以我认为我会链接到它,因为它提供了一个如何实现它的实用示例: 链接到这篇文章的主要内容是: http://www.siafoo.net/article/77#multiple-distributions-one-virtual-package
这个
|
![]() |
5
-8
您的python名称空间概念背对背,在python中不可能将包放入模块中。包中包含模块,而不是相反。
python包只是包含
因此,在您的示例中,假设package-1和package-2是您在python路径上放置的文件系统上的文件夹,您可以具有以下内容:
你现在有一个包裹
|
![]() |
DaveP · sklearn包找不到模块 7 年前 |
![]() |
Greg. O Hajdu · Java多文件和文件夹层次结构 7 年前 |
![]() |
yearntolearn · R包命名空间 7 年前 |
|
gfmio · TypeScript NPM包的目标体系结构 7 年前 |
![]() |
Qaswed · R指在R CMD检查期间不存在的文件 7 年前 |
![]() |
Fiorelo Odobashi · COTson linux安装 7 年前 |