Answers:
您可以使用已经回答的py2exe并使用cython来转换C编译文件中的密钥.py
文件.pyc
,例如.dll
在Windows和.so
linux中,它比普通文件.pyo
和.pyc
文件要难得多(并且还可以提高性能!)
您可以使用PyInstaller将Python程序打包为独立的可执行文件。它适用于Windows,Linux和Mac。
PyInstaller快速入门
从PyPI安装PyInstaller:
pip install pyinstaller
转到程序的目录并运行:
pyinstaller yourprogram.py
这将在名为的子目录中生成捆绑包
dist
。有关更详细的演练,请参见手册。
您可能希望调查 Nuitka。它需要python源代码并将其转换为C ++ API调用。然后将其编译为可执行二进制文件(在Linux上为ELF)。它已经存在了几年,并且支持多种Python版本。
如果使用它,您可能还会获得性能上的改进。推荐的。
我想汇编一些有关使用Python 2.7在Windows上创建独立文件的有用信息。
我已经使用了py2exe,并且可以使用,但是我遇到了一些问题。
它显示了在Windows 64位中创建单个文件的一些问题:与py2exe一起使用bundle_files = 1无效;
必须创建一个setup.py文件才能使其正常工作。http://www.py2exe.org/index.cgi/Tutorial#Step2 ;
我遇到了依赖关系问题,您必须通过在安装文件中导入软件包来解决这些依赖关系。
我无法使其与PyQt一起使用。
这最后一个原因使我尝试使用PyInstaller http://www.pyinstaller.org/。
我认为,这样做更好,因为:
我建议例如使用以下几行创建一个.bat文件(pyinstaller.exe必须在Windows路径中):
pyinstaller.exe --onefile MyCode.py
您可以创建一个文件,以及其他选项(https://pyinstaller.readthedocs.io/en/stable/usage.html#options)。
使用PyInstaller和多处理程序包时,我只有一个问题可以通过使用此食谱解决:https : //github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing。
因此,我认为,至少对于python 2.7,更好和更简单的选择是PyInstaller。
--onefile
标志不会帮助您使其在Windows上可移植,因为该可执行文件仍然希望链接到api-ms-win-crt-runtime-l1-1-0.dll
必须通过vcredist
软件包安装的库(或/和其他库)。因此,依存关系仍然存在,必须在运行之前安装它。
是的,可以将Python脚本编译成独立的可执行文件。
在Windows,Linux,Mac OS X,FreeBSD,Solaris和AIX下,可以使用PyInstaller将Python程序转换为独立的可执行文件。它是推荐的转换器之一。
py2exe将Python脚本转换为仅Windows平台上的可执行文件。
Cython是用于Python编程语言和扩展的Cython编程语言的静态编译器。
第三个选择是cx_Freeze
,它是跨平台的。
cx_Freeze
自2017年底以来pypi 上没有列出任何发行版。这个项目是否被放弃了?
使用py2exe...。使用以下设置文件:
from distutils.core import setup
import py2exe
from distutils.filelist import findall
import matplotlib
setup(
console=['PlotMemInfo.py'],
options={
'py2exe': {
'packages' : ['matplotlib'],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll',
'libgdk_pixbuf-2.0-0.dll']
}
},
data_files = matplotlib.get_py2exe_datafiles()
)
我喜欢pyinstaller-尤其是“窗口式”变体:
pyinstaller --onefile --windowed myscript.py
它将在dist /文件夹中创建一个单个* .exe文件。
我还建议使用 pyinstaller
以获得更好的向后兼容性,例如python 2.3-2.7。
对于py2exe,您必须具有python 2.6
py2exe将生成您想要的exe文件,但您需要在要使用新exe的计算机上具有相同版本的MSVCR90.dll。有关更多信息,请参见http://www.py2exe.org/index.cgi/Tutorial。
你可以找到的上市@配电公司名单https://wiki.python.org/moin/DistributionUtilities。
我使用bbfreeze,并且运行良好(虽然还支持python 3)。
.so
文件,或直接复制.egg文件,并且它们都应存在于单个目录中(或作为单个文件存在)。无需安装。
使用pyinstaller,我发现了使用.exe快捷方式而不是make的更好方法--onefile
。无论如何,周围可能都有一些数据文件,如果您正在运行基于站点的应用程序,则您的程序也将依赖于html,js,css文件。将所有这些文件移到某个地方没有意义..相反,如果我们将工作路径向上移怎么办。
为exe创建快捷方式,将其移动到顶部,并按指定设置目标路径和开始路径,以使相对路径进入dist \ folder:
Target: %windir%\system32\cmd.exe /c start dist\web_wrapper\web_wrapper.exe
Start in: "%windir%\system32\cmd.exe /c start dist\web_wrapper\"
可以将快捷方式重命名为任何名称,从而重命名为“ GTFS-Manager”
现在当我双击-单击快捷方式,就好像我是python运行文件一样!我发现这种方法比以下方法更好--onefile
:
哦,切记在构建后删除构建文件夹,这样可以节省大小。
有人告诉我PyRun,https://www.egenix.com/products/python/PyRun/ 也是一种选择。