标签: module-packaging

在Python中创建命名空间包的方法

分布式的命名空间包中,我知道我可以利用命名空间包将一个大的Python包分成几个较小的包.真的很棒.该文件还提到:

顺便提一下,请注意,在正常的Python包布局中,项目的源树必须包含命名空间包'__init__.py文件(以及任何父包的__init__.py).这些__init__.py文件必须包含以下行:

__import__('pkg_resources').declare_namespace(__name__)
Run Code Online (Sandbox Code Playgroud)

此代码确保命名空间包机制正在运行,并且当前包已注册为命名空间包.

我想知道将相同的目录层次结构保存到包的层次结构有什么好处吗?或者,这只是distribute/setuptools的命名空间包功能的技术要求?

当然,

我想提供一个子包foo.bar,这样我就必须构建以下文件夹层次结构并准备__init__.py以使setup.py工作在命名空间包中:

~foo.bar/
~foo.bar/setup.py
~foo.bar/foo/__init__.py    <=    one-lined file dedicated to namespace packages
~foo.bar/foo/bar/__init__.py
~foo.bar/foo/bar/foobar.py
Run Code Online (Sandbox Code Playgroud)

我不熟悉命名空间包,但它在我看来1)foo/bar和2)(几乎)单行__init__.py是例行任务.它们提供了一些"这是命名空间包"的提示,但我认为我们已经在setup.py中有这些信息了?

编辑:

如下面的块所示,我可以在我的工作目录中使用没有该嵌套目录和单行__init__.py的命名空间包吗?也就是说,我们可以要求setup.py通过只放一行来自动生成它们namespace_packages = ['foo']吗?

~foo.bar/
~foo.bar/setup.py
~foo.bar/src/__init__.py    <=    for bar package
~foo.bar/src/foobar.py
Run Code Online (Sandbox Code Playgroud)

python setuptools module-packaging namespace-package

14
推荐指数
1
解决办法
7059
查看次数

使用webservices进行DotNetNuke模块开发

我需要部署一个web服务作为我正在创建的DotNetNuke 4.x模块的一部分 - 但我不知道如何做到这一点并且知道它将始终保持在同一个地方.如何将asmx文件添加到我的模块项目中,当我创建.DNN文件时,指定webservice最终会在哪里?我想使用"〜/ webservices/webservice.asmx"格式从模块中的ascx文件中引用webservice.

DotNetNuke是否有办法在.DNN文件中指定Web服务最终会在网站上?如果是这样,我仍然可以使用像〜/ myservice.asmx这样的根锚定标签来引用它们吗?

asp.net dotnetnuke web-services module-packaging

5
推荐指数
1
解决办法
2981
查看次数

Github repo有多个python包

我创建了一个Github仓库,我保留了我项目的所有代码.

结构是:

myproject
\
 - package api
 - package database
 - package feature
Run Code Online (Sandbox Code Playgroud)

api包负责与itunes api等外部api通信.

数据库包负责与我的数据库通信.

最后,功能包是我正在构建的实际项目.

每个包都有自己的setup.py.

这个结构有三个问题:

  1. 如何在功能setup.py中添加api和数据库的依赖项?

  2. 你会如何推荐我在亚马逊中部署这个python代码?使用码头?拼盘?别的什么?

  3. 如果我们假设将更多功能添加到功能中作为单独的包.如何在服务器中仅部署代码的子集?让我们说package api和另一个使用它的功能.

如果我的问题不清楚,请告诉我,我会对其进行改进.

python git module-packaging docker

5
推荐指数
0
解决办法
225
查看次数