部署使用不常见模块的python脚本

部署使用不常见模块的python脚本,python,python-3.x,deployment,pyinstaller,Python,Python 3.x,Deployment,Pyinstaller,假设我有一个python脚本,它使用了许多不常见的模块。我想将此脚本部署到不太可能有这些不常见模块的站点。在不必在所有站点上运行“pip”的情况下,有什么方便的方法来安装和部署这个python脚本 我正在使用pythonv3.xpyinstaller,可以选择使用spec文件。不常见的模块应在隐藏的导入参数中指定 pyinstaller [options] script [script …] | specfile 部署参数可以存储在spec文件中,pyinstaller可以使用条目python

假设我有一个python脚本,它使用了许多不常见的模块。我想将此脚本部署到不太可能有这些不常见模块的站点。在不必在所有站点上运行“pip”的情况下,有什么方便的方法来安装和部署这个python脚本


我正在使用pythonv3.x

pyinstaller,可以选择使用spec文件。不常见的模块应在隐藏的导入参数中指定

pyinstaller [options] script [script …] | specfile
部署参数可以存储在spec文件中,pyinstaller可以使用条目python文件执行,如下命令

pyinstaller start.py myscript.spec


有关更多详细信息,请参见

您可以创建一个包含项目中所有不常见模块的python包并上载到提要,可以是公共提要,如www.pypi.org,所有pip安装都从该提要下载,也可以是您的组织azure devops工件


上传软件包后,您只需从您选择的源进行pip安装。

pyinstaller或cx\u您可以使用DockerWIth不常见的模块。我假设PyPI上没有列出这些模块,对吗?您可以将这些模块复制到项目文件夹中,以便在安装项目时自动安装这些模块。您可以将它们捆绑到debian包中,并使用
PYTHONPATH
引用其路径。这里的优点是,您还可以添加非python文件,如systemd服务文件。可能性是无穷的。由于没有理想的解决方案,您需要更具体地说明您的用例是什么。请定义“不常见的模块”需要更多的上下文来理解最佳解决方案,但这似乎是docker容器的一个很好的用例
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(...)