如何将模块用作独立 CLI 以及另一个模块 (API) 的子模块?

詹姆斯·T。

我想弄清楚如何让一个模块独立运行(作为 CLI)并作为另一个模块的子模块(作为 API)。

最小示例:http : //www.filedropper.com/submoduleconfusion-master


对于文件结构:

  • 子模块混淆/
    • mod_a/
      • mod_a.py

假设有一些函数位于SubmoduleConfusion.mod_a.mod_a然后我会使用from mod_a.mod_a import f


由于 mod_a 也可以作为它自己的独立模块运行,

对于文件结构:

  • mod_a/
    • mod_a.py

from mod_a import f

詹姆斯·T。

最好的办法是使用控制台脚本的入口点使模块 pip 可安装(在模块路径的 1 步之外添加 setup.py)。

https://github.com/jtara1/misc_scripts/tree/master/misc_scripts/templates

我在我创建的大部分模块中都使用了这个模板 setup.py 和 setup.cfg。它使用 setuptools_scm,它将使用来自项目的 git 版本(标签)来定义 setup.py 中的版本。

换句话说,你需要git tag 0.1.0git push --tags想要安装的模块或上传到安装之前。

我的setup.py也会推断出模块的名字和父目录同名(github项目名)

所以目录应该是这样的

我的模块

  • 图片
  • 我的模块
    • __main__.py
  • 设置文件
  • 设置文件
  • 自述文件

当前在 setup.py 中的 setup 函数中定义的别名的名称,稍后可能会将其移动到变量

https://github.com/jtara1/misc_scripts/blob/master/misc_scripts/templates/setup.py#L113

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在另一个应用程序无法获取子模块导入正确

如何用另一个仓库替换git子模块?

当两个子模块都在同一主模块中时,从另一个子模块访问该子模块

SonarQube:如何分析曾经是另一个项目子模块的项目?

ES6如何将模块“导入”另一个模块

在另一个模块中声明一个子模块/功能,该模块可由其他模块访问,但用户不可访问

如何从另一个子模块访问一个子模块的布局?

交叉引用链接到另一个子模块中的函数/类

如何将模块从一个angular2-cli项目导出到另一个项目?

如何将另一个模块中的类型用作JSDoc返回/参数类型

git子模块的common子模块

运行另一个不同模块时,模块子模块的ImportError

Angular-如何将模块导入子模块?

Maven构建会跳过与另一个模块相关的子模块

如何在Maven项目中将spring-context从一个子模块导入到另一个子模块?

Angular:将子模块导入另一个子模块将覆盖后者的路由

将git repo迁移到另一个repo的子模块

导入子模块的子模块上的ModuleNotFoundError

Maven:如何管理从一个子模块到另一个子模块的依赖关系

如何使用API / python模块将jira票证从一个项目移至另一个项目

Git Repo对包含子模块的另一个仓库进行子调制

在Azure DevOps存储库中的另一个项目中签出子模块

如何确定哪个模块是git中另一个模块的子模块?

如何将子模块更改推送到另一个存储库

从另一个导入子模块

Git子模块在签出时删除另一个分支

Angular 模块/组件 - 单独显示以及在另一个模块/组件内显示?

如何添加另一个 RSU 子模块?

如何将模块导入databricks笔记本中的另一个模块?