pyinstall打包包含目录(如何安装pyinstaller)

本文目录
- 如何安装pyinstaller
- 在python2.7中怎么把包含模块的python(.py)文件打包成.exe(可执行程序)
- 用 pyinstaller、-F -w等打包方式生成 exe 后,都出现错误,是怎么回事
- pyinstaller 打包pyqt5 图标不显示问题
- 如何将自己编写的.py文件转换为可执行.exe文件
- 如何使用pyinstaller打包32位的exe
- python生成的py文件怎么加密
- 怎样将写好的.py文件生成exe可执行文件
如何安装pyinstaller
听说pyinstaller多平台支持的比较好,考虑在linux(redhat 6 32-bit)上装个pyinstall,
不过真的是遇到太多问题了。。。下面是安装和使用流程:
安装使用流程
1. 首先给系统装个easy_install, 如果装了的可以跳过这步
***隐藏网址***
2. 官网上下载pyinstaller,当前的最新版本是2.1
***隐藏网址***
3.解包进入源码目录
(1)tar -zxvf pyinstaller_2.1.tar.gz
(2)cd pyinstaller-2.1 运行 python setup.py install
4. 拷贝py文件
将需打包的py文件如test.py 拷贝到当前目录
5. 生成可执行文件
cd到pyinstaller目录, 执行 python pyinstaller.py test.py
可能遇到的问题
1. 用户权限
直接在root用户下运行pyinstaller会报错 “cannot run pyinstaller as user root"...
所以需新增另外一个用户,并给用户对pyinstaller所在的目录及所有父目录添加读写权限,避免运行后报‘mkdir’ permission denied...
2. 找不到python lib动态库
su切换到新增用户后,
pyinstaller报错找不到python动态库
raise IOError("Python library not found!")
IOError: Python library not
执行python --version查看当前版本,并查找/usr/local/lib 下有没有对应版本的libpython*.*.so文件,
如果有则跳过这步,如果没有则需要重新安装python,在python安装配置中一定要加上--enable-shared参数就可以生成对应动态链接库,如:
#./configure --enable-shared --prefix=/usr/local
#make
#make install
我环境中更新过python版本,导致/usr/lib下不是最新版本的库文件,需要将新版本拷贝到对应的/usr/lib目录下,注意有两个文件:
#cp libpython*.so /usr/lib/
#ln -s /usr/lib/libpython*.so.1.0 /usr/lib/libpython*.so
在python2.7中怎么把包含模块的python(.py)文件打包成.exe(可执行程序)
安装模块pyinstall
pip install pyinstall
然后使用 cmd 下面,使用下面命令生成exe
pyinstaller 脚本名字.py
用 pyinstaller、-F -w等打包方式生成 exe 后,都出现错误,是怎么回事
首先安装pyinstaller下载地址:7827835传统方式:通过命令提示符cd到该解压的(和setup.py同一目录),然后输入pythonsetup.pyinstall或者直接在命令提示符中输入pipinstallpyinstaller通过piplist可以查看你所有安装的包以及包的版本
开始打包成exe1、命令提示符cd到需要打包的文件的目录,直接在命令提示符中输入pyinstaller-F文件名.py注意F要大些,呵呵就这么简单
打包成功后会出现两个文件夹,其中一个就是所需要的exe文件;
注:若是gui文件可以在输入pyinstaller-F-w文件名.py其中w是小写,意思就是五命令行窗口,默认的是-c有命令行窗口,当然一般的文件也可以-w,这样命令行窗口就没有了。pyinstaller的其他常用的参数--icon=图标路径-F打包成一个exe文件-w使用窗口,无控制台-c使用控制台,无窗口-D创建一个目录,里面包含exe以及其他一些依赖性文件还有一些可以通过pyinstaller-h来查看参数。
pyinstaller 打包pyqt5 图标不显示问题
pyqt5打包成exe,程序有图标,但是双击打开的窗口左上角没有显示小图标。
打包命令 : pyinstaller -F -w -i.ico1.ico main.py
执行之后,exe程序有图标,双击打开没有图标
解决方法: 1.创建images.qrc文件
在txt文件中写入
《RCC》
《qresource prefix="/"》
《file》ico1.ico《/file》
《/qresource》
《/RCC》
保存,修改文件后缀为.qrc
2.生成py文件,这个py文件把图片保存成二进制
pyrcc5 -o images.py images.qrc
3. 导入模块
import images
MainWindow.setWindowIcon(QIcon(’:/ico1.ico’))
一般情况下,图标问题可以解决.如果还是不行,将窗口的小图标格式修改问 .png格式 ico1.png 再执行以上步骤.
注意exe的图标的图片格式问.ico格式.
如何将自己编写的.py文件转换为可执行.exe文件
利用Python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行,这时候就可以利用将档案包装成exe档案,让没有Python的朋友也可以执行。本篇将介绍利用套件「PyInstaller」制作exe档。
1|0安装方法
1234
#安装pyinstallerpip install pyinstaller#安装依赖pip install pywin32-ctypes
2|0常用参数介绍
pyinstaller -h来查看参数
-F打包成一个exe文件
-i图标路径
-w使用视窗,无控制台
-c使用控制台,无视窗
-D创建一个目录,包含exe以及其他一些依赖性文件
编译文件时,我们通常使用如下命令:
pyinstaller -F -w -i favo.ico main.py
3|0静态文件
对于python所依赖的图片,config.yaml等静态文件,pyinstall不会自动打包,需要手动在main.py(所需要打包的入口文件)的相同目录中寻找main.spec,修改datas依赖,才可以自动打包到exe的相同目录下,然后执行即可
datas是一个数组,每个子项是一个tuple,其中tuple的第一个参数是你要打包的源路径,第二个参数是打包后的名字
12345678910111213141516
# -*- mode: python -*- block_cipher = None a = Analysis(,win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
然后执行:
pyinstaller -F main.spec
4|0示例
如下图所示,我们编写一个输出helow pyinstaller的Python程序,并利用input()使程序可以暂时停在输出画面。
12
print(’helow pyinstaller’)input(’please wait:’)
编译python为exe,编译过程中会自动安装相关依赖
pyinstaller -F hello.py
编译过程中会产生如下输出:
1234567891011121314
…6942 INFO: checking PY6944 INFO: Building because toc changed6944 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz7559 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz completed successfully.7568 INFO: checking PKG7569 INFO: Building because toc changed7569 INFO: Building PKG(CArchive)PKG-00.pkg9407 INFO: Building PKG(CArchive)PKG-00.pkg completed successfully.9409 INFO: Bootloader c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe9409 INFO: checking EXE9411 INFO: Building because toc changed9411 INFO: Building EXE from EXE-00.toc9412 INFO: Appending archive to EXE C:\Users\user\Desktop\test\dist\test.exe9455 INFO: Building EXE from EXE-00.toc completed successfully.
通过输出可以看出pyinstaller进行了如下操作:
会先建立一个hello.spec
建立「build」文件夹
建立log纪录档与工作档案于文件夹build中
建立「dist」文件夹
建立执行档(.exe)在「dist」文件夹
4|1注意事项
执行档案可在win8/win10,64位的电脑运行,但win7 x64和其余所有32位失败,会提示不兼容,若要能32位与64位皆可运行,就要在Python 32位的环境下编译PyInstaller打包exe,才能在32位与64位成功。
如何使用pyinstaller打包32位的exe
原来安装的anaconda为64位故安装的Python也是64位的,然后pyinstaller和打包后的exe都为64位。而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容。
简单但是不方便的方法是采用32位的python重新打包。
因为使用的是Anaconda,所以使用conda构建32位python环境,然后再次打包。具体操作如下:
1.构建32位python环境
进入命令提示符窗口
2.安装pyinstaller
注:这一步是必须的,如果不在该环境下安装,还是使用原来的pyinstaller,那么打包的程序仍然为64位
然后pyinstaller -F xxx.py就可以打包32位的exe程序了。如果您的.py文件用到了其它第三方库,那么还需要在此环境下再次安装,不然打包成32exe程序运行时会提示包Module找不到。
python生成的py文件怎么加密
命令如下:
python -c "import compileall; compileall.
compile_dir(’目录’)"
该命令可以为一个目录下的py文件生成pyc文件(包含子目录)在windows平台上的路径书写方式为
(’C:/python26/pyc’)
下面符一完整命令: 将目录’C:/python26/pyc’下的所有PY文件 转为PYC文件
?Download test.py1
python -c "import compileall; compileall.
compile_dir(’C:/python26/pyc’)"
怎样将写好的.py文件生成exe可执行文件
将写好的.py文件生成exe可执行文件的方法
安装好python,建议将python安装在根目录下。
去cxfreeze官网下载好对应的cx_freeeze版本。
正确安装cx_freeze,看下图
运行:cmd命令,查看cx_freeze是否安装正确。如果出现了下图的情况,说明环境变量设置不正确。请点击下面的环境变量设置方法。
0环境变量设置方法
当然,设置完环境变量可能还是有问题,那么这里就要设置路径了,路径设置在cxfreeze.bat文件中,cxfreeze.bat文件在:c:\python34\scripts文件夹下(如果你不是安装在c盘,找到相应位置即可)看下图,这里发现没有cxfreeze.bat文件。
那么要怎么生成cxfreeze.bat文件呢。用python编译一下cxfreeze-postinstall(二进制)文件即可,编译后的文件如下图
用记事本打开cxfreeze.bat文件。如果你不是装在c盘,请将路径改成你的安装路径。
这里以经典的hello world为例,看下图。cd: c:\python34\scripts将目录转到cxfreeze所在目录。cxfreeze c:\test\hello.py --target-dir c:\test命令:cxfreeze c:\test\hello.py对hello.py进行编译,--target-dir目标存储目录为c:\test文件夹。生成过程相当长,如下图。
看下test文件夹下,已经生成.exe文件。
点击运行,如下图(如果没有在代码中添加暂停的代码,只能看到黑框一闪而过)代码在后面一张图,供参考。至些,.py文件成功转成.exe可执行文件。
小刚SEO为你解答

更多文章:
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40






