本文共 1542 字,大约阅读时间需要 5 分钟。
我的是在winx64位环境下,
首先说一下pyinstaller打包项目的流程参数意义:
-F 打包单个文件,产生一个文件用于部署(默认),如果代码都写在一个.py文件时使用,项目有多个文件时不要使用
-D 1.打包多个文件,产生一个目录用于部署(默认),用于框架编写的代码打包
例:pyinstaller -D xxx.py(项目入口文件)
例:pyinstaller --onedir xxx.py(项目入口文件) –key=keys 1.使用keys进行加密打包-w
–windowed –noconsole 1.表示去掉控制台窗口,使用Windows子系统执行,当程序启动的时候不会打开命令行(只对Windows有效)例:pyinstaller -c xxx.py
例:pyinstaller xxx.py --noconsole -c 1.表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认)(只对Windows有效)-i --icon=<file.ioc> 1.将file.ico添加为可执行文件的资源,改变程序的图标(只对Windows系统有效)
例:pyinstaller -F -i file.ico xxx.py
例:pyinstall -F --icon=<file.ioc> xxx.py –icon=<file.exe,n> 1.将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)可能出现的问题跟网上类似
1、No module named 'pyproj._datadir 修改xx.spec文件 2.FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\natha\AppData\Local\Temp_MEI309082\branca_cnames.json’ 在你运行的python环境中搜索并修改以下三个文件: \ folium \ folium.py, \ folium \ raster_layers.py, \ branca \ element.py 修改如下:# ENV = Environment(loader=PackageLoader('branca', 'templates')) # 注释掉原本的ENV配置# 添加以下代码 三个文件均作此处理import os, sysfrom jinja2 import FileSystemLoaderif getattr(sys, 'frozen', False): # we are running in a bundle templatedir = sys._MEIPASSelse: # we are running in a normal Python environment templatedir = os.path.dirname(os.path.abspath(__file__))ENV = Environment(loader=FileSystemLoader(templatedir + '\\templates'))
再次修改xx.spec文件,可以根据内容自行修改icon、console等等
生成在同级目录的dist文件夹下,如果是项目用到的静态文件,需要将所有的静态文件以原来相同的相对路径拷贝到dist文件夹 这样才能保证不会报错转载地址:http://mhben.baihongyu.com/