[英]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:
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.