簡體   English   中英

Linux上的Python模塊win32com

[英]Python module win32com on Linux

我正在編寫一些在多個平台下運行的Python代碼。 不幸的是,在Win32下,我必須支持一些COM功能。

但是這些行在Linux環境下會失敗:

from pythoncom import PumpWaitingMessages
from pythoncom import Empty
from pythoncom import Missing
from pythoncom import com_error
import win32api

並且使用Win32 COM API的所有其他函數也將失敗。 確保根據平台不加載/導入某些代碼並在接口客戶端調用它們時給出錯誤消息/異常的標准方法是什么?

使用try..except ImportError

try:
    from pythoncom import PumpWaitingMessages
    from pythoncom import Empty
    from pythoncom import Missing
    from pythoncom import com_error
    import win32api
except ImportError:
    # handle exception

有異常時該怎么辦取決於您。 您可以添加提供類似接口的特定於Linux的代碼,或者您可以使用warnings模塊告訴用戶某些功能/功能不可用。


或者,你可以使用一個if-statement基於價值sys.platform

import sys
if sys.platform == "win32":
    ...
elif sys.platform == 'cygwin':
    ...
elif sys.platform[:5] == 'linux':
    ...
elif sys.platform == 'darwin':
    ...
else:
    ...

對於跨平台代碼可能很重要的其他值可以是os.name (可以等於'posix''nt''os2''ce''java''riscos' )或platform.architecture (這可能等於('32bit', 'ELF') 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM