部署使用不常见模块的 python 脚本
Deploying python script that uses uncommon modules
假设我有一个 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 help
您可以创建一个包含项目中所有不常见模块的 python 包并上传到提要,可以是像 www.pypi.org 这样的 public 提要,其中下载了所有 pip 安装来自或可能是您的组织 azure devops 工件。
上传包后,您只需从您选择的提要中进行 pip 安装。
假设我有一个 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 help
您可以创建一个包含项目中所有不常见模块的 python 包并上传到提要,可以是像 www.pypi.org 这样的 public 提要,其中下载了所有 pip 安装来自或可能是您的组织 azure devops 工件。
上传包后,您只需从您选择的提要中进行 pip 安装。