Python项目部署设计
情况是这样的:我现在所在的公司让我可以自由地使用java或python开发我的应用程序。该公司主要有java方面的经验 我已经决定使用python,因此他们非常高兴地要求我对所有与数据库维护相关的python项目/脚本进行维护 处理所有这些事情并不是那么糟糕,与java程序员相比,看看我有多少空闲时间也很有趣。只有一个,但项目布局混乱 公司里有很多脚本只是放在虚拟机中。其中一些模块具有复杂的功能,这些功能分布在几个模块中(最多4个) 在思考这个问题时,我意识到我不知道如何解决这个问题,所以这里有三个问题Python项目部署设计,python,project-layout,Python,Project Layout,情况是这样的:我现在所在的公司让我可以自由地使用java或python开发我的应用程序。该公司主要有java方面的经验 我已经决定使用python,因此他们非常高兴地要求我对所有与数据库维护相关的python项目/脚本进行维护 处理所有这些事情并不是那么糟糕,与java程序员相比,看看我有多少空闲时间也很有趣。只有一个,但项目布局混乱 公司里有很多脚本只是放在虚拟机中。其中一些模块具有复杂的功能,这些功能分布在几个模块中(最多4个) 在思考这个问题时,我意识到我不知道如何解决这个问题,所以这里有
- 我应该把独立脚本放在哪里?我们使用git作为版本控制系统
- 如何构造项目的布局,使用户不需要深入挖掘文件夹来运行程序(在java中,我创建了一个jar或jar以及一个shell脚本来处理一些引导操作)
- 创建易于重用的模块的标准方法是什么(mycompany.myapp.mymodule?)
\uuu init\uuuu.py
的文件,Python将该目录视为一个包,并允许您使用点式导入导入其内容:
spam \
__init__.py
ham.py
eggs.py
import spam.ham
包中的模块可以相互引用——请参阅文档
如果这些都是DB维护脚本,我会制作一个名为DB之类的包,并将它们全部放在其中。对于更复杂的包,您可以使用子包。所以,如果你有一个清理事务日志的脚本,我不知道,你可以把它放在ourDB.clean中,然后执行
import ourDB.clean
ourDB.clean.transaction_logs( )
A是一种创建模块层次结构的方法:如果在目录中创建一个名为\uuuu init\uuuu.py
的文件,Python会将该目录视为一个包,并允许您使用点式导入导入其内容:
spam \
__init__.py
ham.py
eggs.py
import spam.ham
包中的模块可以相互引用——请参阅文档
如果这些都是DB维护脚本,我会制作一个名为DB之类的包,并将它们全部放在其中。对于更复杂的包,您可以使用子包。所以,如果你有一个清理事务日志的脚本,我不知道,你可以把它放在ourDB.clean中,然后执行
import ourDB.clean
ourDB.clean.transaction_logs( )
我应该把独立脚本放在哪里
你“按功能”组织它们——基于它们的功能和人们使用它们的原因
语言(Python与Java)是不相关的
您必须将脚本视为关注某些需求的小型应用程序,并为该应用程序创建适当的目录结构
我们使用/opt/thisapp
和/opt/thatapp
。如果需要共享装载点,可以使用不同的路径
如何构造项目的布局,使用户不需要深入挖掘文件夹来运行程序
你“按功能”组织它们——基于它们的功能和人们使用它们的原因。在/opt/thisapp
目录的顶层,您可能有一个\uuuu init\uuuu.py
(因为它是一个包)和一个启动实际工作的main.py
脚本
在Python2.7和Python3中,有runpy
模块。有了这个你就可以说出你的名字了
顶级主脚本\uuuu main\uuuuuu.py
创建易于重用的模块的标准方法是什么(mycompany.myapp.mymodule?)
阅读有关软件包的信息
我应该把独立脚本放在哪里
你“按功能”组织它们——基于它们的功能和人们使用它们的原因
语言(Python与Java)是不相关的
您必须将脚本视为关注某些需求的小型应用程序,并为该应用程序创建适当的目录结构
我们使用/opt/thisapp
和/opt/thatapp
。如果需要共享装载点,可以使用不同的路径
如何构造项目的布局,使用户不需要深入挖掘文件夹来运行程序
你“按功能”组织它们——基于它们的功能和人们使用它们的原因。在/opt/thisapp
目录的顶层,您可能有一个\uuuu init\uuuu.py
(因为它是一个包)和一个启动实际工作的main.py
脚本
在Python2.7和Python3中,有runpy
模块。有了这个你就可以说出你的名字了
顶级主脚本\uuuu main\uuuuuu.py
创建易于重用的模块的标准方法是什么(mycompany.myapp.mymodule?)
阅读有关软件包的信息