在Vagrant机器上将使用pywin32/excel的Python从Windows移植到Linux

0 投票
1 回答
1111 浏览
提问于 2025-04-19 10:41

我写了一个很大的Python包,这个包用到了Excel和pywin32。现在我正在把这个包迁移到一个在Vagrant机器上的Linux环境中。

我知道有一些“模拟器”软件,比如WINE,可以运行Windows应用程序,还有一些类似的程序可以替代Windows应用(比如把Excel换成OpenOffice)。不过,我现在还没找到合适的方法,让我在Linux环境的Vagrant机器上运行依赖于pywin32和Excel的代码。理想情况下,我希望我的代码完全不需要修改,只需要在Vagrant机器上安装好相关的东西就行。

谢谢

1 个回答

2

简单来说,你是做不到的。WINE并不能把一个封装好的Windows环境的COM注册表暴露给Linux。而且,就算可以,pywin32这个库也只能在Windows上运行。

下面是一些选择,按照对你的代码和设置的影响从小到大排列:

  • 在真实的Windows系统中运行你的Python脚本和Excel,使用一个真实的模拟器。
  • 在WINE环境中同时运行你的Python脚本和Excel。
  • 编写或寻找一个库,能够把封装好的Windows环境的COM注册表暴露给Linux。
  • 编写或寻找一个跨平台的DCOM库,提供类似于win32com的接口,然后修改你的代码,使用这个库远程连接封装好的Excel。
  • 重写你的代码,通过例如ssh连接到Windows机器,运行一些简单的WSH脚本来控制Excel。
  • 重写你的代码,使用LibreOffice或你喜欢的其他软件来代替Excel。
  • 重写你的代码,直接处理Excel文件(或者CSV或其他交换格式),而不是通过脚本控制Excel。

撰写回答