需求:帮别人做一个统计 pdf 文档内词频的功能
环境:python3.6
>Package Version
-------------- ---------
altgraph==0.16.1
atomicwrites==1.1.5
attrs==18.1.0
future==0.16.0
jieba==0.39
macholib==1.10
more-itertools==4.2.0
pdfminer3k==1.3.1
pefile==2017.11.5
pip==18.0
pluggy==0.7.1
ply==3.11
py==1.5.4
PyInstaller==3.3.1
pytest==3.7.0
setuptools==39.1.0
six==1.11.0
参考文档:
https://www.jianshu.com/p/5a59b6985346
https://www.crifan.com/use_pyinstaller_to_package_python_to_single_executable_exe
坑:
上述链接文档里,都是把环境和脚本打包成了一个 exe 文档
在脚本目录用命令 pyinstaller -F -p venv_path (中间一定要有空格) you.py
打包成一个文档后,报错在系统目录找不到 jieba 的 dict.txt
因为 jieba 会去找它自带的 dict.txt 文档
当你打包成一个文档的时候,貌似 pyinstaller 不会把你的 txt 文档打包进来,所以 jieba 回去系统目录去找,就会找不到,然后报错
想到的第一个解决办法是改搜索路径,嫌麻烦,不改...
第二个办法,既然不会打包 txt 文档,那我干脆不打包依赖库,只打包脚本,让它自己去搜索依赖
pyinstaller -p venv_path (中间一定要有空格) you.py
因为我需要黑终端输入路径,所以没有用 -w 参数
在 dist 文件夹生成了一个以脚本名命名的文件夹,包含一堆配置文档和一个 脚本名.exe
运行报错找不到当前目录下的 jieba
遂把 venv/lib/python3.6/site-packages/ 下的所有文件拷过来
双击成功 666
环境:python3.6
>Package Version
-------------- ---------
altgraph==0.16.1
atomicwrites==1.1.5
attrs==18.1.0
future==0.16.0
jieba==0.39
macholib==1.10
more-itertools==4.2.0
pdfminer3k==1.3.1
pefile==2017.11.5
pip==18.0
pluggy==0.7.1
ply==3.11
py==1.5.4
PyInstaller==3.3.1
pytest==3.7.0
setuptools==39.1.0
six==1.11.0
参考文档:
https://www.jianshu.com/p/5a59b6985346
https://www.crifan.com/use_pyinstaller_to_package_python_to_single_executable_exe
坑:
上述链接文档里,都是把环境和脚本打包成了一个 exe 文档
在脚本目录用命令 pyinstaller -F -p venv_path (中间一定要有空格) you.py
打包成一个文档后,报错在系统目录找不到 jieba 的 dict.txt
因为 jieba 会去找它自带的 dict.txt 文档
当你打包成一个文档的时候,貌似 pyinstaller 不会把你的 txt 文档打包进来,所以 jieba 回去系统目录去找,就会找不到,然后报错
想到的第一个解决办法是改搜索路径,嫌麻烦,不改...
第二个办法,既然不会打包 txt 文档,那我干脆不打包依赖库,只打包脚本,让它自己去搜索依赖
pyinstaller -p venv_path (中间一定要有空格) you.py
因为我需要黑终端输入路径,所以没有用 -w 参数
在 dist 文件夹生成了一个以脚本名命名的文件夹,包含一堆配置文档和一个 脚本名.exe
运行报错找不到当前目录下的 jieba
遂把 venv/lib/python3.6/site-packages/ 下的所有文件拷过来
双击成功 666