背景:在一个用户的电脑上安装好arcade 2.0.9版本,一切正常,但是在import arcade库的时候出现了下图的错误,python加载avutil的dll出错啦,报错信息看这个dll跟pyglet挂钩的。

一开始百度搜索了下,有博友说是卸载重装可以解决(我试过有些库可以用这个方法解决),有些博友说是电脑缺少vc++2015导致的,我一看用户电脑确实是只有vc++2017 ,并没有vc++2005–2015等常用运行库,于是我就去百度搜索“”微软常用运行库下载“”,下载完安装后试了下重新安装库也是不行(我觉得多少有点关系吧,毕竟这个问题的本身就是编译库的时候编程dll有关)。

这个问题的本质原因就是:安装的python是64位的,在安装arcade库的时候会顺带下载了pyglet-ffmpeg2这个依赖库,问题的关键就在于这个依赖库,这库安装时会编译生成avutil的dll文件,至于这个dll文件生成的是32位还是64位的一般会自动跟进python的位数决定,用户电脑是64位的确实编译生成了32位的avutil的dll, 所以在调用dll时64位python调用不了32位的dll的。

原因本质解析可以参考这个文章:https://blog.csdn.net/weixin_39590566/article/details/113320798
解决方法参考:http://t.zoukankan.com/hong-fithing-p-9708946.html

看完了上面2篇引用文章,我决定去验证下这个问题:
我在自己的电脑64位python里安装了arcade2.0.9版本,会自动下载pyglet1.4.0b1版本,经过漫长的每个目录查找dll(可以百度下载everything这个软件方便查找),发现pyglet-ffmpeg2这个库会生成和dll文件,用notepad++打开这个调用的dll文件,看到是乱码的不要紧,我们关键看圈起来的是‘’d‘’就是64位的,否则是32位的.(怎么看dll是不是32位的,这是博友教的一个技巧)。我这里是正常import arcade,因为64位python调用64位的dll肯定正常。


我又在电脑上安装了个32位的python,在python里继续安装了arcade==2.0.9版本,这是一切顺利安装完成。找到pyglet-ffmpeg2这个库编译生成的avutil的dll文件,继续用notepad++打开,果然是32位的dll。在32位的python里import arcade库也是正常的,毕竟32位python调用32位的avutil没毛病。


关键验证问题的一步来了,我把这个32位的avutil-56.dll放到64位python的pyglet-ffmpeg2这个库里面的dll文件夹里进行替换,然后import下arcade库,果然成功复现了问题:

综上:你可以参考引文的方法改源码,强制指导调用64位的dll试下 ,理论上可以的; 最好的方法就是你在正常的使用这个库的电脑安装好库,把dll复制到你的电脑对应目录替换下就行。我是直接在用户电脑安装了32位的python,编译出来的avutil.dll是32位的了,他那边就可以正常使用了;我也可以把我本地正常的64python生成的64位avutil-56.dll复制替换他本地生成的那个32位的avutil-56.dll。

python在import库的时候报错OSError:不是有效的win32应用程序相关推荐

  1. python下载第三方库的时候报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the

    python下载第三方库的时候报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the l ...

  2. python中invalid argument_Python创建文件报错OSError:[Errno 22] Invalid argument处理

    问题: windows平台下使用python open函数w模式打开文件报错"OSError: [Errno 22] Invalid argument: '../news/"消费升 ...

  3. 【Python】import自己的模块报错

    在实际使用python时,我们会将一些公共的东西写到一些基础模块中,供其他模块去调用,这时会去import自定义的一些基础模块,然后来导入. 自己写好了脚本,然后导入,导入的情况分为以下情况: 1. ...

  4. 【Python】import pandas时,报错 pandas Missing required dependencies ['numpy'] 原因分析

    结论:在需要 import pandas 时,同级目录下不要有 unittest.py同名文件,否则,会与pandas自带的unittest冲突,导致 import pandas 失败. 错误使用场景 ...

  5. Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法

    看了菜鸟的教程,有这段代码: mail = smtplib.SMTP("localhost") 然后就报错了.菜鸟的教程太老了,Python迭代这么快,根本跟不上. 把这个里面的参 ...

  6. python ctypes 报错 %1不是有效的Win32应用程序

    [1]最开始我以为ctypes也是conda install安装的库,以为这个问题是因为ctypes库太老的问题,故打算删了ctypes,重新安装,结果它是python内置程序,但删了可以用 cond ...

  7. python库下载安装报错_Python 各种库的安装

    在Win7 系统安装的Python 各种库,如:pandas.numpy.scipy等 因为平时使用的是IDE-PyCharm,这里可以直接 [File-Setting-Project:XXX-&qu ...

  8. ubuntu18.04安装python的mysqlclient==1.4.6报错ERROR Command errored out with exit status 1python setup

    安装python的mysqlclient==1.4.6报错 环境: ubuntu18.04 python 3.7.2 Django 2.2 想要使用Django来操作MySQL,报错: LookupE ...

  9. 已解决(from docx import Document导包报错)ModuleNotFoundError: No module named ‘exceptions‘

    已解决(from docx import Document导包报错)ModuleNotFoundError: No module named 'exceptions' 文章目录 报错代码 报错翻译 报 ...

最新文章

  1. 在网上常听到说CEO CTO CIO CGO COO CFO什么什么..现在了解了一下..呵呵
  2. 寻找冬日里的流量美食,发现了李子柒走红的秘密
  3. php date( ymd_PHP-date(),time()函数的应用
  4. 哪种开源许可证最适合商业化?
  5. 渐进式web应用程序_通过渐进式Web应用程序吸引用户并增强他们的体验
  6. [Leedcode][JAVA][第990题][等式方程的可满足性][并查集]
  7. 组合体视图的画图步骤_(完整版)组合体视图画法教案
  8. react月份选择控件_一款很实用的ReactJS日期范围选择控件
  9. 简单的机器学习程序_发那科机器人编写简单的程序教程
  10. Linux内核网络udp数据包发送(一)
  11. 视频下载软件Annie的安装及使用
  12. 关于uc/os-ii在c51上的移植总结
  13. 自己的网页嵌入外部邮箱登陆
  14. 【过程挖掘算法4】Alpha Miner及其系列算法
  15. win10计算机属性管理打不开,win10无法打开设置应用的两种解决方法【图文】
  16. 推荐系统 - 基于标签的推荐算法
  17. 使用PHP实现蜘蛛访问日志统计
  18. SVM-支持向量机理解(拉格朗日乘子法(Lagrange multiplier))
  19. 基于深度卷积神经网络的人脸识别考勤系统-VGG-PYTHON-QT(1)
  20. 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor

热门文章

  1. “抖音盒子”APP低调上线,这不是始料未及,而是蓄谋已久
  2. 前端从web服务器或者CDN下载资源总结
  3. python中字符串可以加减乘除吗_Python实现不用加减乘除做加法
  4. 国产化服务器兼容系统,加速国产化应用新进程,FinClip与统信UOS完成兼容互认证...
  5. 心疼你们这些熬夜看世界杯的
  6. 文件/文件夹无法删除或删除后重新出现
  7. 理顺元宇宙与区块链之间的关系,并且真正找到元宇宙的正确发展之道
  8. 2020 OpenInfra Days China :OpenStack+Kubernetes,构建新一代私有云和容器云
  9. Tshock的config.json配置文件翻译(对应5.1.2版本)
  10. vcm驱动芯片原理_特斯拉电驱动系统终极拆解篇