有没有办法将我的Python程序移动到其他计算机而无需重新安装所有必需的模块?
也许是通过编译?
答案 0 :(得分:5)
我认为您正在寻找PyInstaller。根据定义,PyInstaller是一个程序,可以在Windows,Linux,Mac OS X,Solaris和AIX下将(Python)程序转换(打包)为独立的可执行文件。
在撰写本文时,PyInstaller并不支持Python 3.但是this page on freezing your code or shipping:Solution | Windows | Linux | OS X | Python 3 | License | One-file mode | Zipfile import | Eggs | pkg_resources support
bbFreeze | yes | yes | yes | no | MIT | no | yes | yes | yes
py2exe | yes | no | no | no | MIT | yes | yes | no | no
pyInstaller | yes | yes | yes | no | GPL | yes | no | yes | no
cx_Freeze | yes | yes | yes | yes | PSF | no | yes | yes | no
请参阅cx_Freeze的文档here。
答案 1 :(得分:0)
如果您只想在另一台计算机上使用python程序运行, PyInstaller 或 py2exe 将是两个不错的推荐。
PyInstaller支持多种不同的操作系统:Windows,Linux,Mac OS等,而py2exe仅支持Windows。
详情请访问:
PyInstaller: http://www.pyinstaller.org/
py2exe: http://www.py2exe.org/
答案 2 :(得分:0)
您可以将应用程序及其使用的所有纯Python模块组合到一个压缩文件中。
此方法的示例包括youtube-dl和我自己的lamprop计划。
基本上,您创建一个目录,其中包含所有模块和程序文件的目录,该文件应命名为__main__.py
。
> ls
__main__.py lamprop/
> ls lamprop/
__init__.py html.py latex.py parser.py text.py types.py
然后将其包装在一个zip文件中,并给出一个shebang-line,用于类UNIX系统;
cd src; zip -q ../foo.zip __main__.py lamprop/*.py
echo '#!/usr/bin/env python' >lamprop
cat foo.zip >>lamprop
chmod a+x lamprop
rm -f foo.zip
(上面的命令是为在类UNIX系统上使用而编写的。在Windows系统上,组合文件应该被赋予py
扩展名,以便将它传递给Python解释器。)
Python解释器知道如何处理压缩源代码存档。它解压缩并运行__main__.py
。
您可以将已安装的第三方模块复制到源树中,并以相同的方式包含它们。但是要记住几件事情;
答案 3 :(得分:0)
您可以在pyinstaller
的帮助下执行它
首先通过-
安装pyinstallerpip install pyinstaller
用法-
pyinstaller example.py
这将在名为build/
的子目录中生成二进制文件,并且依赖项将位于脚本的源文件夹中的dist/
下。
ls -lha build/example/example
ls -lha dist/example/