2024-10-02 14:28:29 发布
网友
我正在编写一个clipython应用程序,它依赖于一些库(Paramiko等)。 如果我下载它们的源代码并将它们放在我的主应用程序源代码下,我就可以导入它们,一切正常。 为什么我要管理他们设置.py还是python包安装人员处理?在
我知道在部署服务器端应用程序时,管理员可以运行easy_install/pip命令等来安装prerequsite,但是对于像CLI这样的脚本应用程序,它们必须作为只依赖python二进制文件的自包含应用程序进行分发,那么推荐的方法是什么?在
几个原因:
并非所有的包都是纯python包。在包中包含C扩展并使setup.py自动化编译过程很容易。
setup.py
自动依赖项管理;依赖项由安装工具(pip,easy_install,zc.buildout)为您声明和安装。依赖关系也可以动态声明(尝试导入json,如果失败,则声明对simplejson的依赖关系,等等)。
pip
easy_install
zc.buildout
json
simplejson
自定义资源安装设置。安装过程是高度可配置和动态的。依赖性检测也是如此,cx_Oracle必须跨越许多困难,才能使安装变得简单明了,比如需要支持的所有不同平台和Oracle库发行版选项的怪癖。
cx_Oracle
为什么仍要对CLI脚本执行此操作?这取决于CLI对您有多重要;您是否会在未来几年维护它?然后我仍然使用setup.py,因为它记录了依赖关系是什么,包括最低版本需求。您可以添加测试(python setup.py test),并轻松部署到新位置或升级依赖项。在
python setup.py test
几个原因:
并非所有的包都是纯python包。在包中包含C扩展并使
setup.py
自动化编译过程很容易。自动依赖项管理;依赖项由安装工具(
pip
,easy_install
,zc.buildout
)为您声明和安装。依赖关系也可以动态声明(尝试导入json
,如果失败,则声明对simplejson
的依赖关系,等等)。自定义资源安装设置。安装过程是高度可配置和动态的。依赖性检测也是如此,
cx_Oracle
必须跨越许多困难,才能使安装变得简单明了,比如需要支持的所有不同平台和Oracle库发行版选项的怪癖。为什么仍要对CLI脚本执行此操作?这取决于CLI对您有多重要;您是否会在未来几年维护它?然后我仍然使用
setup.py
,因为它记录了依赖关系是什么,包括最低版本需求。您可以添加测试(python setup.py test
),并轻松部署到新位置或升级依赖项。在相关问题 更多 >
编程相关推荐