如何使用特定版本的python解释器来运行脚本而不将其安装在系统上



我的代码只能在特定版本的python(64位python 3(上运行,并且安装了一些库。然而,我不想在我想运行它的每台计算机上安装特定版本的python和库。有没有办法在不安装该特定版本的python和库的情况下运行它?

我列出了我对你的问题的看法。我个人过去都用过它们,它们都起作用了。您可以使用任何一种方式,但在使用任何一个之前,请检查利弊,并根据您的问题做出明智的选择(例如,如果您只想试用Python 2.7中的脚本,(2(和(3(是完美的解决方案,但如果您同时在2.7和3.8中开发,(4(或(1(可能是最好的。如果你希望你的客户能够轻松地运行你的应用程序,你可以选择(1((

(1( 你可以查看Docker。对于特定的Python版本,有特定的Docker镜像。查看Python的Docker站点。您可以选择运行代码的特定版本。如果需要安装软件包,可以运行requirements.txt来安装所有软件包,但如果需要安装另一个应用程序,则可以根据列出的映像之一创建自己的Docker映像。

(2( 另一种更Python的方法是使用virtualenv并指定要使用的Python。然而,这也需要下载并解压缩另一个版本的Python,但不需要安装。

virtualenv:中的相应标志

discovery:
discover and provide a target interpreter
--discovery {builtin}         interpreter discovery method (default: builtin)
-p py, --python py            target interpreter for which to create a virtual (either absolute path or identifier string) (default: c:python38-32python.exe)

(3( 此外,如果您解压缩另一个版本的Python,您可以简单地使用可执行文件的绝对路径。

(4( 我的最后一个想法是使用pyenv,它是一个Python版本管理器。它很容易使用和在Python版本之间切换,我过去也使用过。也可以查看他们的网站。

(5( 例如,您可以使用py2exe将解释器和应用程序打包为单个可执行文件。我从来没有用过这个工具。

实现这一点的典型方法是使用PyInstaller,它将Python编译成字节码并生成一个可执行文件。它还收集了你所有的依赖项,并将它们放入一个文件夹中。Py2Exe和Nuitka做了类似的事情。在某些情况下,如果这对你很重要的话,Nuitka可以让你的代码运行得更快。

所有这些解决方案都会将源.py文件转换为其他文件。如果您想分发源文件和特定的Python分发版,我不知道该用例是否有特定的项目。

我使用PyInstaller将我的应用程序部署到组织中的其他计算机上。当我向应用程序添加新功能时,我通常会重建分发文件夹,但只会将生成的可执行文件复制到客户端计算机。如果所有不同的库和模块都没有改变,那么这个模型就可以正常工作。如果您更改应用程序中的库或迁移到新版本的Python,则需要将整个分发文件夹复制到客户端。

最新更新