在MacOS和Linux上安装win32com

6
我的问题很简单:我能在非Windows操作系统上安装win32com Python API(尤其是pywin32)吗?
我一直在尝试在Mac上安装多个版本的“pip install pywin32”,但都失败了。以下是一个示例:

enter image description here

如果您在Linux上成功安装了它,我也很感兴趣,因为我是写这个的人。
我正在使用Python 3.7.8。
谢谢。

1
win32com为Win32 API提供了Python绑定。在非Win32操作系统上没有Win32 API。 - n. m.
也许你可以用一些说服力来安装它。那么它会做什么呢? - n. m.
请问你能帮我解决这个问题吗?首选方案是使用Outlook发送自动邮件。 - Mez13
1
抱歉,我完全无法帮助你解决这个问题。 - n. m.
1
这不是纯粹的语义问题。与特定操作系统库的绑定在该库提供集成的操作系统之外是无效的。从技术上讲,可能可以在MacOS或Linux上通过WINE安装win32com到安装了Python for Windows的系统,但这样做实际上很少会帮助你完成你想要做的事情。如果你向我们咨询你真正的最终目标是什么,我们可能会提供比你询问那些你认为是通往目标必要步骤的不可能的事情更好的答案。 - undefined
显示剩余3条评论
1个回答

5

Win32COM[GitHub]: mhammond/pywin32 - pywin32 的一部分。
根据上述URL,该软件包仅设计用于 Windows

Python for Win32 (pywin32) extensions

因此,它是专门针对 Windows 系统的(从未意图在其他操作系统上运行)。

至于你的问题,从技术上讲,你可以在 LinuxOSX 上安装它(需要进行一些手动步骤),但这并没有任何意义,因为即使安装了它,它也无法在这些平台上运行,因为它包含(由)非 Windows 操作系统可执行的二进制文件(.dll)。

刚刚看了评论:[MS.Docs]: Office.MessageCompose interface 可以在 OSX 上使用,但(如果没有现成的 Python 封装)您可能需要自己编写绑定(他们的示例是用 JS 写的)。



附加(通用)信息

有些软件包仅适用于特定条件,基于限制性标准,如:

  • 平台(操作系统CPU 架构)

  • Python 版本

  • ……

即使未由安装机制强制执行(这意味着它们可能以某种方式“安装”在无法运行的平台上)。
无论如何,这些限制都应该在软件包的说明中(例如对于 PyWin32,请查看红色框)得到提及。

  • PyPI页面

    Img0

  • 主页

    Img1

  • 其他资源(例如:如果包含doc页面,则为该包的doc页面)

总之,这样的软件包在其设计运行条件之外是不起作用的(即使可以安装),并且当尝试运行它时,会产生一些可能不太清晰的错误消息。

有些软件包有这样的限制,但仍然可以在这些限制之外安装:

  • Win:

    • ComTypes

      • Error:

        [cfati@cfati-5510-0:/mnt/e/Work/Dev/StackOverflow/q064975918]> python -c "import comtypes"
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/home/cfati/.local/lib/python3.8/site-packages/comtypes/__init__.py", line 28, in <module>
            from _ctypes import COMError
        ImportError: cannot import name 'COMError' from '_ctypes' (/usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so)
        
      • Fix (improvement): [GitHub]: enthought/comtypes - Improve error message on non Win

    • WConio2

      • Error:

        [cfati@cfati-5510-0:/mnt/e/Work/Dev/StackOverflow/q064975918]> python -c "import WConio2"
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/home/cfati/.local/lib/python3.8/site-packages/WConio2.py", line 125, in <module>
            from ctypes import windll
        ImportError: cannot import name 'windll' from 'ctypes' (/usr/lib/python3.8/ctypes/__init__.py)
        
      • Fix (improvement): [GitHub]: Solomoriah/WConio2 - Improve error message on non Win


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接