2012-06-26 51 views
3

我试图在Windows上运行在Eclipse下面的Python代码的一部分,但它显示的错误说法pwd是不是一个有效的导入:Python代码运行在Windows,我可以绕过使用“如果不是Win32而言,”

import os 
import pwd 
import socket 
pinfo=pwd.getpwuid(os.getuid()) 

我可以使用if not win32来绕过这个部分,所以当它在Windows上运行时,它只是跳转而不会产生错误?

if not win32: 
    import os 
    import pwd 
    import socket 
    pinfo=pwd.getpwuid(os.getuid()) 
else: 
    return 

如果是的话,做我需要做的,用这个win32,因为它也显示一个错误说undefined variable

+0

你可以(最有可能)使用'try' /'except'条款 - !或者你可以依靠'os.name'('如果os.name =' nt'') – mgilson

回答

3

您应该使用sys.platform对于检查OS。

if sys.platform != 'win32': 
    ... 
+0

非常感谢。如果你不介意你能说明一点吗? 像我必须导入使用此模块? ,这是否会自行运行,不会产生错误,或者是否有其他事情需要添加? 再次感谢您。 –

+0

你应该首先导入'sys'模块。问题是,如果你想让你的代码在Windows中真正做一些事情,你也应该提供一个Windows版本:)例如'如果sys.platform =='win32':(windows代码)else:(unix code)' – hmp

+0

谢谢你的跟进。还有一个问题,如果你可以如此善良。如果是你,那么你会用什么样的Windows代码来使用与这段Unix代码相同的功能?或者,也许我可以工作的一些方向,因为我迷路了。谢谢! –

1

您可以通过使用

import os 
if os.name != 'nt': 
    # do something 
+0

'win'未列在文档的可接受名称中... – mgilson

+0

@mgilson对不起,'nt'是正确的名称。 –

2
if sys.platform != 'win32': 
... 
相关问题