部署使用非通用模块的python脚本。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署使用非通用模块的python脚本。相关的知识,希望对你有一定的参考价值。

假设我有一个python脚本,它使用了许多不常见的模块,我想把这个脚本部署到不可能有这些不常见模块的站点。我想把这个脚本部署到那些不可能有这些不常见模块的站点。有什么方便的方法来安装和部署这个python脚本,而不需要在所有的站点上运行 "pip"?

我使用的是python v3.x

答案

pyinstaller与规范文件将是一个选项。不常用的模块应该在隐藏的导入参数中指定。

pyinstaller [options] script [script …] | specfile

部署参数可以存储在spec文件中,pyinstaller可以用下面的命令执行Python文件条目

pyinstaller start.py myscript.spec

样本文件

block_cipher = None
a = Analysis(['minimal.py'],
     pathex=['/Developer/PItests/minimal'],
     binaries=None,
     datas=None,
     hiddenimports=[],
     hookspath=None,
     runtime_hooks=None,
     excludes=None,
     cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
     cipher=block_cipher)
exe = EXE(pyz,... )
coll = COLLECT(...)

看到 pyinstaller帮助 更多详情

另一答案

你可以创建一个包含项目中所有不常用模块的python包,然后上传到一个feed,可以是公共feed,比如www.pypi.org,所有的pip安装都是从那里下载的,也可以是你的组织的azure devops artifacts。

上传你的包后,你只需要从你选择的feed中进行pip安装。

以上是关于部署使用非通用模块的python脚本。的主要内容,如果未能解决你的问题,请参考以下文章

python 非root 用户安装第三方模块

有没有办法让python omnicomplete与vim中的非系统模块一起使用?

ArgParse Python 模块:更改继承参数的默认参数值

如何用python写ios的游戏脚本?

Python中的模块简单认识

python模块的导入详解