打包时参数问题:
1. 问题为:no module named typedefs 程序中有sklearn的内容
在参数中添加下面的命令:
--hidden-import sklearn.neighbors.typedefs
2. -p 可以直接引入某个python模块,这样对于一写自己编写的功能模块可以直接在打包时用这个参数导入
3. jieba分词模块导入时会缺少dict.txt,按照路径添加即可
4. pyinstaller含有data参数,但是不知道路径具体怎么包含,所以利用下面的函数,对引入的文件文本,判断当前路径,添加即可,避免找不到文件
import sys, os
#获取脚本文件的当前路径
def cur_file_dir():
#获取脚本路径
path = sys.path[0]
#判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回的是脚本的目录,如果是py2exe编译后的文件,则返回的是编译后的文件路径
if os.path.isdir(path):
return path
elif os.path.isfile(path):
return os.path.dirname(path)
#打印结果
print(cur_file_dir())
以上的坑折磨了一天,
这个链接里的hook感觉挺有用的,就是这个文档各种用法没有示例代码,有时候还是有点看不懂
http://pythonhosted.org/PyInstaller/hooks.html#understanding-pyinstaller-hooks
这个参数可以添加图标:--onefile --icon="my.ico"