Error loading Python DLL python36.dll 的解决办法 及其他pyinstaller问题

项目相关:

pyqt5

python3.6

win10

-------------------------------------------------- -------------------------------------------------- ----------------------------

pyinstaller打包文件成EXE指令简单,但是!!!会有很多坑

若了解pyinstaller反编译加密,移步:https://blog.csdn.net/magic_shuang/article/details/106426139

 

问题1

警告:未找到隐藏的导入“XXX”!

【解决】pip install XXX - >重新pyinstaller

 

问题2

错误

误差2

【解决】pyinstaller --clean --win-private-assemblies -F XXXX.py

--clean清除pyinstaller的缓存并移除之前建立的临时文件,

 --win-私人组件把跟这个程序捆绑的共享的组件都改为私有的

调试阶段不用-w,因为如果有错误就打印在终端了而不是闪退

问题3

回溯(最近一次调用最后一次):
  文件“XXXXX.py”,第3行,在<module>
  文件“d:\ python \ python36 \ lib \ site-packages \ PyInstaller \ loader \ pyimod03_importers.py”,第714页行,load_module
    module = loader.load_module(fullname)
ModuleNotFoundError:没有名为'PyQt5.sip'的模块
[18720]无法执行脚本qt_control_24

【解决】pyinstaller指令中加入: - hidden-import PyQt5.sip

【解决】在主程序中导入PyQt5.sip

问题4

程序中有Multiprocessing的引用

在打包成可执行程序后会创建进程失败。

【解决】(转自:dexterchen

one-directory模式,只要再程序的最开始调用multiprocessing. freeze_support()就可以了

注意!!!!一定要写在

if __name__ == '__main__':
里,否则就会出现 can not get '模块' from 的错误

one-file模式,还需要使用下面修改后的Process和Pool。

问题5

(我的程序名叫upload)

报这个错误首先检查一下,不加-w是否出错,确定是-w起的幺蛾子,下一步

你是否用了popen执行windows指令?如果用了就按照下面修改

    cmd_f = "ping -w 2 -n 1 " + SERVER_IP
    info = subprocess.STARTUPINFO()
    info.dwFlags |= subprocess.STARTF_USESHOWWINDOW

    my_popen = subprocess.Popen(cmd_f,
                                   stdin=subprocess.PIPE,
                                   stderr=subprocess.PIPE,
                                   stdout=subprocess.PIPE,
                                   startupinfo=info )
    
    text_CreationDate = my_popen.stdout
    text_CreationDate = text_CreationDate.read().decode("gbk")

问题6

 

win7旗舰版X64,运行exe报错

 

 

 

解决:打补丁

1.下载补丁: https://www.microsoft.com/zh-CN/download/details.aspx?id=5842

 

2.下载:vc_redist.x64.exe

3.或者在安装大补丁前可能需要下载安装:windows6.1-KB976932-X64.exe

 

 

ubuntu 打包源码构建opencv:

详情:opencv源码安装3.4.1,python源码安装,pyinstaller3.3.1

报错:ImportError: OpenCV loader: missing configuration file: ['config.py']. Check OpenCV installation.

解决: pyinstaller -F main.py --paths='/usr/local/lib/python3.6/site-packages/cv2/python-3.6'

注意:不是必须这个文件夹,如果在你的python安装路径的site-packages里面有cv2也可以

 

问题:免杀

打包后移动到其他电脑会被当做木马程序,删除

解决:

1.代码有危险操作

import os
os.system(cmd)

2. ico换成标准尺寸[512, 256, 144, 140, 128, 120, 108, 100, 88, 72, 48, 32, 28],我用的72不报错了

参考:https://blog.csdn.net/clannad_niu/article/details/83819872

换成

import subprocess
subprocess.Popen(cmd, close_fds=True)

原因:

subprocess创建的是python的子进程,os.system独立进程

 

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值