IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> xlwings 安装及排错: DLL load failed while importing win32api -> 正文阅读

[Python知识库]xlwings 安装及排错: DLL load failed while importing win32api

特别声明:本文不是安装指南,仅仅是安装过程中解决问题的记录,各人可能碰到不同的问题,解决思路也不会相同。本人是参考了网上的资料,经过反复才解决。故此把解决过程记录于此。有用可以拿去,没用的话就需要自己再去摸索了

使用 Python,免不了需要与excel打交道,试过xlsxwriter、openpyxl等以及自带一些功能,总有些不满意。
结果就发现了 xlwings 。

根据目前的文章,xlwings性能综合来看几乎是最优秀的,而且xlwings可以实现通过Excel宏调用Python代码。
Excel+Python,简直法力无边(具体没有使用,准备实际使用后再写后续文章)
在这里插入图片描述

安装原来是很简单的事情:
1、安装 xlwings

pip install xlwings

2、安装xlwings的 Excel集成插件

xlwings addin install

以为大功告成,结果一下子杯具了:

Traceback (most recent call last):
  File "D:\python\Scripts\xlwings-script.py", line 6, in <module>
    from xlwings.command_line import main
  File "D:\python\lib\site-packages\xlwings\__init__.py", line 42, in <module>
    from . import _xlwindows as xlplatform
  File "D:\python\lib\site-packages\xlwings\_xlwindows.py", line 10, in <module>
    import win32api
ImportError: DLL load failed: 找不到指定的程序。

经过一番搜索,最终确认这不是 xlwings的专有问题,而是由于其引用了pywin32 引起的,pywin32的问题是公共。网上有一些解决办法,可惜测试后都发现一些问题。本文也算是一个补充的吧。

方法一 https://www.jianshu.com/p/e0df87f09b8c

xlwings是Python中操作Excel的一个第三方库,支持.xls读写,.xlsx读写,操作非常简单,功能也很强大
xlwings与VBA的配合非常完美,你可以在python中调用VBA,也可以在VBA中使用python编程,这些通过xlwings都可以巧妙实现。
先说装这个xlwings碰到个神坑:

用pip install pywin32装完之后错误就来了

DLL load failed while importing win32api: 找不到指定的程序。
md搞死我了

查不到,再查,再查,再查。。。

解决方法:https://www.cnblogs.com/Swalllow/p/11711750.html
找到文件pywin32_postinstall.py的路径,

由于安装路径不同,可能位置不一样,可以在你安装python的文件夹搜索这个文件,

一般在安装文件下的Scripts文件里,用cmd进入这个Scripts文件夹

如cd/d D:\install\python3.8\Scripts

在路径下运行python pywin32_postinstall.py -install

再检查一次是否成功

芜湖~,居然好了

该方法可行,不过需要有些额外的工作,结果如下:

Scripts 目录在python的目录下(不是lib 下 sites-packages)
里面可以找到文件 pywin32_postinstall.py
在此目录下运行命令 : python pywin32_postinstall.py -install
我的是python 3.7,结果如下:

Parsed arguments are: Namespace(destination='D:\\python\\Lib\\site-packages', install=True, quiet=False, remove=False, silent=False, wait=None)
Copied pythoncom37.dll to C:\Windows\system32\pythoncom37.dll
Copied pywintypes37.dll to C:\Windows\system32\pywintypes37.dll
Registered: Python.Interpreter
Registered: Python.Dictionary
Registered: Python
-> Software\Python\PythonCore\3.7\Help[None]=None
-> Software\Python\PythonCore\3.7\Help\Pythonwin Reference[None]='D:\\python\\Lib\\site-packages\\PyWin32.chm'
Registered help file
Pythonwin has been registered in context menu
Creating directory D:\python\Lib\site-packages\win32com\gen_py
Can't install shortcuts - 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Python 3.7' is not a folder
The pywin32 extensions were successfully installed.

重新运行 xlwings addin install
依然有错误:

[Errno 2] No such file or directory: 'C:\\Users\\admin\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'

xlwings.xlam 在 安装包的addin目录下,例如: \python\Lib\site-packages\xlwings\addin

把它拷贝到提示错误的目录下(我发现还需要检录 XLSTART 目录,可能其他人不同吧)

再次运行,终于成功了

(base) D:\python> xlwings addin install
Successfully installed the xlwings add-in! Please restart Excel.

打开 excel 发现多了插件 xlwings(准备测试是不是说的那么强大,本文就此打住)

在这里插入图片描述
**最后的补充:上述过程完成后,真正运行时如果还是会出现错误,找不到python命令,此时,可以在interpreter中输入pythonw.exe所在的目录 , 如 d:\python\pythonw.exe **
在这里插入图片描述

方法二 https://www.codingdict.com/questions/166465

在Admin命令提示符下运行Scripts \ pywin32_postinstall.py -install

参考:https 😕/github.com/mhammond/pywin32/issues/1431

编辑:用户@JoyfulPanda发出警告:

以管理员权限运行此脚本还将把pythoncom37.dll,pywintypes37.dll(与pywin32版本相对应)复制到中C:\WINDOWS\system32,这将有效地覆盖Anaconda中已经存在的相应DLL版本。稍后在Windows上打开“开始菜单>
Anaconda3(64位)> Anaconda提示(a_virtual_env_name)”时,这会引起问题。默认情况下,至少Anaconda
2019.07已安装pywin32 223。Pywin32 224可以工作,但是225-228导致Anaconda出现问题(2019.07)

注:这种说法与方法一有点类似,说到了一点原理,但语焉不详,如果不是看了方法一,可能会觉得莫名其妙,但这里解释了一个原因,可能是版本问题,具体就不研究了

方法三 https://blog.csdn.net/yl20175514/article/details/82981087

我们执行时报错了,下面来说解决方法。
参考网站:

win32api pywin32 安装后出现 ImportError: DLL load failed_mengfanteng的博客-CSDN博客
win32api pywin32 安装后出现 ImportError: DLL load failed_李强_新浪博客

找到我们安装python的文件夹,在Lib文件中找到site-packages\pywin32_system32

D:\Program Files (x86)\Python\Python36\Lib\site-packages\pywin32_system32

把里面的所有的文件复制到:C:\Windows\System32

现在,问题解决。无需重新打开DOS窗口,直接执行:scrapy bench。

注:经测试,本方法不能解决问题,依旧报同样错误。但既然人家说了,应该还是有用,而且也是方法一种需要的一个方面,也许有人用此办法就可以吧。

最后希望大家都能解决自己的问题,尽信书不如无书,还是要多实践才行,哪怕是现在百度如此发达的时代!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:14:27  更:2022-05-05 11:18:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:18:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码