Python 在脱机系统上安装模块和应用程序的规范方法
我们有一个应用程序(实际上是一堆扭曲的类),它运行在特定的Python版本上,并且依赖于相当多的模块。此应用需要部署到无法访问Internet的Windows Server计算机上 目前,我们正在选择:Python 在脱机系统上安装模块和应用程序的规范方法,python,installation,twisted,Python,Installation,Twisted,我们有一个应用程序(实际上是一堆扭曲的类),它运行在特定的Python版本上,并且依赖于相当多的模块。此应用需要部署到无法访问Internet的Windows Server计算机上 目前,我们正在选择: 必须先安装Python,然后再安装一个Python脚本来解压所有模块并运行setup.py 制作一个NSIS安装程序,安装Python,然后使用.exe安装程序安装所有模块,然后将较小的模块解压到其他目录中,然后将目录添加到%PYTHONPATH% 处理这种情况的好办法是什么?显然,我们不能
- 必须先安装Python,然后再安装一个Python脚本来解压所有模块并运行
setup.py
- 制作一个NSIS安装程序,安装Python,然后使用.exe安装程序安装所有模块,然后将较小的模块解压到其他目录中,然后将目录添加到
%PYTHONPATH%
处理这种情况的好办法是什么?显然,我们不能使用pip、easy_install.exe和其他受欢迎的工具,我们的方法既愚蠢又不雅观。尝试使用。它旨在涵盖您的情况,即您只需构建一次轮子,即可下载所有必需的软件包。然后,您只需将轮盘存档复制到目标机器上,并在不下载任何东西的情况下安装您的应用程序。 < P>作为第三选项,您可以考虑将应用程序部署为使用PyInstaller()的可执行文件。您不需要在客户机上安装任何东西(甚至不需要python) PyInstaller是一个在Windows、Linux、Mac OS X、Solaris和AIX下将Python程序转换(打包)为独立可执行文件的程序。与类似工具相比,它的主要优点是PyInstaller可以与2.4版以后的任何Python版本一起工作,它通过透明压缩构建更小的可执行文件,它是完全多平台的,并且使用操作系统支持加载动态库,从而确保完全兼容性 我在一个项目中使用它在Linux和Windows中部署独立的应用程序。工作得很有魅力。我的项目也使用了Twisted
在当前的两种选择之间,setup.py方法更像python。但是要注意,如果您的任何模块都有一些c实现,需要编译以提高性能,那么您不能在客户端机器上这样做。谢谢!在安装控制盘组件之前,是否需要将任何附加模块带到目标机器?即。它是否可以生成只需要默认Python安装提供的最少Python环境的“自解压”数据包?您应该有pip和wheel数据包来解包wheel archive,还可以选择使用virtualenv。关于wheel文档,有一个非常简单明了的例子。我非常喜欢wheels中涉及的技术,使用类似
pyinstaller
的东西意味着您不必在远程上调用distutils或setuptools中的逻辑(挑剔、易出错、不由您维护),断开连接的机器,可能以有趣或新颖的方式出现故障。如果它是自包含的,那么您需要担心的唯一代码就是您的应用程序(当然还有python,以及pyinstaller拥有的任何引导程序代码——但您可能必须处理前者,而后者可以很容易地进行测试)。