博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pyinstaller打包folium相关项目
阅读量:3902 次
发布时间:2019-05-23

本文共 1542 字,大约阅读时间需要 5 分钟。

我的是在winx64位环境下,

首先说一下pyinstaller打包项目的流程

  1. pythontaller -D xx.py 会生成xx.spec文件
    #可以根据自己需求更改spec
  2. pyinstaller -w xx.spec

参数意义:

-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文件
No module named 'pyproj._datadir
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/

你可能感兴趣的文章
Kryo序列化进阶学习: 加密数据
查看>>
swift 3.0 数组赋值
查看>>
用C#通过888-TT打印中文标签
查看>>
sendmail 出现 My unqualified host name的解决办法
查看>>
彻底解决lazarus安装组件后烦人的编译时单元找不到的问题!
查看>>
Delphi的参数修饰const/var/output 与C++的对应关系
查看>>
C++ free与delete区别
查看>>
VC的字符串转换atlconv的使用
查看>>
递归算法的时间复杂度
查看>>
数据结构之图(存储结构、遍历)
查看>>
使用sizeof计算类的大小
查看>>
乐观锁与悲观锁——解决并发问题
查看>>
operator 类型转换及重载
查看>>
HTTP状态码
查看>>
TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
查看>>
TCP/IP详解--再次深入理解TCP网络编程中的send和recv
查看>>
TCP与UDP收发的时候TCP有缓冲区还是UDP有缓冲区,使用它们时该注意什么?
查看>>
C++中map、hash_map、unordered_map、unordered_set通俗辨析
查看>>
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
查看>>
运算符重载参数的顺序对运算是否有影响
查看>>