益702 2024-05-20 10:17 采纳率: 100%
浏览 3
已结题

在xlwings 中调用自定义函数 Impor Functions报错找不到.dll文件

关于在 xlwings 中调用 Impor Functions 后报错找不到.dll文件

这是一段使用 quickstart 命令生成的配套.py文件,代码如下:

import xlwings as xw


def main():
    wb = xw.Book.caller()
    sheet = wb.sheets[0]
    if sheet["A1"].value == "Hello xlwings!":
        sheet["A1"].value = "Bye xlwings!"
    else:
        sheet["A1"].value = "Hello xlwings!"


@xw.func
def hello(name):
    return f"Hello {name}!"


if __name__ == "__main__":
    xw.Book("first_udf.xlsm").set_mock_caller()
    main()


报错窗口:

img

打开一并生成的同名excel文件并运行 Impor Functions 后返回错误未找到.dll文件。
仔细看提示的路径,发现并不是在我使用的xl3801 环境下的env文件夹地址,而是默认condas安装路径,我表示无法理解!

既如此我在Anconda Prompt 中切换回(base)环境然后 conda install xlwings=0.29.1 ,果不其然最后会弹出没有管理员权限写入
于是我退出重新以管理员身份再重复上面的安装操作,这次成功把扩展写入到在C:\ProgramData\anaconda3\envs里的一个新建环境之下

但是,最后在xl3801环境内运行excel 的 Impor Functions 命令仍然报错,我不知道问题出在哪里

麻烦大能们提供思路,感激不尽。
#
我的xl3801环境使用的相关包版本是:
pandas=1.1.3
openpyxl=3.0.5
numpy=1.23.5
python=3.8

  • 写回答

3条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    问题分析:

    根据你提供的信息,错误提示为未找到.dll文件,但该文件实际上已经放在了正确的路径下。因此,我们需要先排除一些其他可能性,例如环境变量配置、文件权限等问题。

    解决方案:

    1. 使用管理员权限安装xlwings:你已经尝试了这个方法,但由于管理员权限限制而没有成功安装,因此你需要打开管理员权限运行的Anaconda Prompt,然后运行以下命令:conda install xlwings=0.29.1。

    2. 设置环境变量:从错误提示可以看到,Python在启动时会搜索环境变量PATH中的路径来查找.dll文件。因此,你可以检查一下你的环境变量是否正确设置了xlwings所需要的路径。将xlwings库所在的路径添加到环境变量中即可,例如:

      set PATH=%PATH%;C:\ProgramData\anaconda3\envs\xl3801\Lib\site-packages\xlwings\lib
      
    3. 重新安装xlwings:在移除旧版本的xlwings之前,你可以先在命令行中运行以下语句来查看.dll文件的路径:

      import xlwings
      print(xlwings.__file__)
      

      如果路径与你期望的不同,你可以尝试将它手动复制到正确的位置。

      另外,你也可以考虑卸载以前的xlwings版本,然后重新安装最新版本的xlwings。

    4. 检查文件权限:在某些情况下,文件权限也可能导致无法加载.dll文件。你可以尝试将文件的所有者设置为你当前的用户并授予完全控制权限。

    总结:

    在xlwings中调用Import Functions时报错找不到.dll文件,可能是以下原因导致的:管理员权限问题、环境变量配置问题、xlwings库安装问题、文件权限问题等。可以通过重新安装xlwings、手动复制.dll文件到正确位置、检查文件权限等方式尝试解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值