python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总

编程入门 行业动态 更新时间:2024-10-28 02:33:57

python 虚拟<a href=https://www.elefans.com/category/jswz/34/1771403.html style=环境搭建、打包成exe发布和所遇到的问题汇总"/>

python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总

python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总

文章目录

  • python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总
    • 1.项目用到的软件
    • 2.python虚拟环境安装
    • 3.问题和解决:
      • 3.1使用pyinstaller编译文件为exe产生1.WARNING: file already exists but should not: C:\Users\workAI\AppData\Local\Temp\_MEI132522\torch\_C_
      • 3.2.FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\_MEI126282\\easyocr\\character\\ch_sim_char.txt'
      • 3.3PyInstaller编译程序报错:
      • 3.4pyinstaller生成exe后运行太慢
      • 3.5在使用图片识别库easyocr时报错cv2.error: Unknown C++ exception from OpenCV code#
    • 4.带easyocr功能打包exe步骤(以下如有更好的方案,请大家留意,谢谢)
      • 4.1执行
      • 4.2生产\dist\main
      • 4.3拷贝imageio和easyocr
      • 4.4拷贝.EasyOCR/modle
      • 4.5打包发布
      • 4.6使用
      • 4.7启动
      • 4.8激活

1.项目用到的软件

python3.7

Pycharm_Professional_2021.2.1_Protable

2.python虚拟环境安装

2.1 安装pip
先下载pip-22.2.2.tar.gz源码,解压后cd pip-22.2.2
py.exe setup.py install pip设置源
pip config set global.index-url .2 安装pipenv
pip install pipenv2.3 在指定目录激活虚拟环境,
在D盘创建虚拟环境目录Python_ENV,然后cd到该目录
#创建虚拟环境 pipenv install
D:\Python_ENV>pipenv install
#查看虚拟环境所在目录
(Python_ENV-iU3StqtP) D:\Python_ENV>pipenv --where
D:\Python_ENV
#激活虚拟环境 pipenv install
D:\Python_ENV>pipenv shell
Launching subshell in virtual environment...
Microsoft Windows [版本 10.0.22000.978]
(c) Microsoft Corporation。保留所有权利。2.4 虚拟环境中安装项目所需包
#qt
(bo-flwsr0G4) (base) C:\Users\bo>pip install PyQt5(bo-flwsr0G4) (base) C:\Users\bo>pip install Pillow(bo-flwsr0G4) (base) C:\Users\bo>pip install pycryptodome(bo-flwsr0G4) (base) C:\Users\bo>pip install pypiwin32
(bo-flwsr0G4) (base) C:\Users\bo>pip install wmi 
(bo-flwsr0G4) (base) C:\Users\bo>pip install pyyaml
(bo-flwsr0G4) (base) C:\Users\bo>pip install coloredlogs
(bo-flwsr0G4) (base) C:\Users\bo>pip install pymysql
#工具
(bo-flwsr0G4) (base) C:\Users\bo>pip install PyQt5-tools
鼠标点击
(bo-flwsr0G4) (base) C:\Users\bo>pip install pymouse#安装打包软件
关键点就一个:也要在虚拟环境里安装pyinstaller
(bo-flwsr0G4) (base) C:\Users\bo>pip install pyinstaller#安装easyocr
pip install easyocr -i  --trusted-host pypi.mirrors.ustc.edu如果出现:在使用图片识别库easyocr时报错cv2.error: Unknown C++ exception from OpenCV code.
原因:就是opencv的版本太高了,python版本低导致的。
解决方案:虚拟环境中 重新导入opencv
pip install opencv-python==4.1.2.30 -i 
(bo-flwsr0G4) (base) C:\Users\bo>pip list2.5 打包exe在pycharm终端中执行cmd:pyinstaller -D main.py --console --icon=favicon.ico --hidden-import easyocr  -p 

3.问题和解决:

3.1使用pyinstaller编译文件为exe产生1.WARNING: file already exists but should not: C:\Users\workAI\AppData\Local\Temp_MEI132522\torch_C_

解决方案:main.spec
找到*.spec配置文件,打开该文件中加入以下代码:

for d in a.datas:if '_C.cp37-win_amd64.pyd' in d[0]:a.datas.remove(d)break

详细的main.spec配置文件的内容如下:

......
a = Analysis(['main.py'],pathex=[],binaries=[],datas=[],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)#加入的代码部分start             
for d in a.datas:if '_C.cp37-win_amd64.pyd' in d[0]:a.datas.remove(d)break
#加入的代码部分endpyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
.......

3.2.FileNotFoundError: [Errno 2] No such file or directory: ‘C:\Users\Administrator\AppData\Local\Temp\_MEI126282\easyocr\character\ch_sim_char.txt’

解決:打包命令后边加入 --collect-all easyocr 选项

pyinstaller -F --onefile main.spec --collect-all easyocr --noconsole --icon=favicon.ico

3.3PyInstaller编译程序报错:

INFO: UPX is not available.

原因:pyinstaller使用UPX压缩,

解决办法:安装UPX,然后再运行打包exe命令即可(会提示UPX is available了)

下载UPX->解压得到 upx.exe文件->拷贝到pyinstaller目录下

UPX地址:.96

3.4pyinstaller生成exe后运行太慢

pyinstaller打包时,使用-D替代-F选项。

-D:生成一个文件夹,里面是多文件模式,启动快
-F:仅仅生成一个文件,不暴露其他信息,启动较慢

3.5在使用图片识别库easyocr时报错cv2.error: Unknown C++ exception from OpenCV code#

原因:就是opencv的版本太高了,python版本低导致的。

解决方案:虚拟环境中 重新导入opencv
pip install opencv-python==4.1.2.30 -i

4.带easyocr功能打包exe步骤(以下如有更好的方案,请大家留意,谢谢)

4.1执行

 pyinstaller -D main.py --console --icon=favicon.ico --hidden-import easyocr  -p C:\Users\15129\.virtualenvs\system32-zwnXhztR\Lib\site-pac
kages

4.2生产\dist\main

4.3拷贝imageio和easyocr

C:\Users\15129.virtualenvs\system32-zwnXhztR\Lib\site-packages
下的imageio和easyocr 替换 \dist\main 的

4.4拷贝.EasyOCR/modle

将screenShot-register下的.EasyOCR拷贝到main

原因:.EasyOCR模型训文件,easyocr程序会从C:\Users\yourname\目录下读取该模型。但pyinstaller打包exe时不会打包进去,所以这里需要自行拷贝,以便后边使用时再拷贝到C:\Users\yourname\下 。

4.5打包发布

使用压缩工作main.zip

4.6使用

解压main.zip

将main下的.EasyOCR 拷贝C:\Users\yourname\下

4.7启动

点击main/mian.exe

4.8激活

如软件做了注册功能,请将弹窗中注册码复制给软件发行商,激活

更多推荐

python 虚拟环境搭建、打包成exe发布和所遇到的问题汇总

本文发布于:2023-12-03 20:59:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657585.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:环境   python   exe

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!