安装和运行pywin32 2.7时出错

Mik*_*ike 17 python installation winapi pywin32

安装后我想出了几个错误:

pywin32-217.win32-py2.7

我最近将ArcGIS升级到10.1,它使用的是Python 2.7(而不是ArcGIS 10.0附带的2.6)

当我在Windows 7 64位上运行安装程序时,它会安装,但会抛出以下消息:

在文件对象析构函数中关闭失败:

缺少sys.excepthook

丢失了sys.stderr

我有一个简单的python脚本从包含.pdf文件的文件夹打印到打印机,这些文件在升级之前有效

import arcpy, glob, win32api, os

pdfLoc = arcpy.GetParameterAsText(0)

try:
    copies = int(arcpy.GetParameter(1))
except:
    copies = 1

for pdfname in glob.glob(os.path.join(pdfLoc, "*.pdf")):
    fullpath = os.path.join(pdfLoc, pdfname)
    for copy in range(copies):
        win32api.ShellExecute(0, "print", pdfname, None, ".", 0)

del fullpath
del pdfname
del pdfLoc
Run Code Online (Sandbox Code Playgroud)

现在,当我运行脚本时,我收到以下错误:

回溯(最近一次调用最后一次):文件"Z:\ ESRI\Python\Solstice_Tools_Scripts\Printer_Tools\Batch_Print_From_PDF_Only\BatchprintFromPDFOnly_Test.py",第34行,在win32api.ShellExecute(0,"print",pdfname,None,".", 0)错误:(31,'ShellExecute','连接到系统的设备无法运行.')

无法执行(BatchPrintFromPDFOnly2).

我一直在谷歌搜索并尝试了一些解决方案,比如在故障排除模式下运行可执行文件,但错误仍然存​​在.谁能提出可能导致这种情况的人?

作为旁注,我将公司中的4台计算机升级到新版本的python和ArcGIS,其中只有一台是抛出此错误.其余的工作正常.

谢谢,迈克

小智 42

我有同样的问题,但解决方法有点不同.我没有创建另一个管理员帐户,而是能够pywin32-217.win32-py2.7.exe从我以管理员身份运行的命令提示符中成功执行.


Ger*_*rat 9

另一种解决方案是Mark Hammond 在pywin32邮件列表上的建议:

如果禁用用户访问控制(UAC),这似乎会发生 - 它是否已禁用?

无论哪种方式,尝试从安装目录的根目录运行"python scripts\pywin32_postinstall.py -install",事情应该完成注册 - 这应该修复你看到的下一个错误.

这对我来说很好.


小智 6

不能以管理员身份安装,请参阅此错误报告:

这可能是因为您在"管理员"帐户下运行Windows,而您通常运行的任何内容都等于"以管理员身份运行"

矛盾的是,在Windows 7上以管理员身份运行pywin32的安装会导致此错误.

因此,解决方法是创建另一个管理员帐户

net user Admin/add
net user Admin
net localgroup Administrators Admin/add

然后运行pywin32安装

runas/user:Admin pywin32-217.win32-py2.7.exe


小智 5

这些解决方案都没有帮助我(坐在Windows 10上).

但是当我运行c:\ python27\scripts\pywin32_postinstall.py -install时,我终于修复了它

安装完成后,您可以尝试再次运行安装程序,以确保为我工作.