18

安装后出现几个错误:

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

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

Traceback(最近一次调用最后):文件“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,其中只有一台抛出此错误。其余的工作正常。

谢谢,迈克

4

9 回答 9

43

我有同样的问题,但解决它有点不同。我无需创建另一个管理员帐户,而是能够从以Run as Administratorpywin32-217.win32-py2.7.exe开始的命令提示符成功执行。

于 2014-01-12T23:30:33.970 回答
9

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

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

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

这对我来说很好。

于 2014-01-23T19:43:45.847 回答
6

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

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

并且自相矛盾地以管理员身份在 Windows 7 上运行 pywin32 的安装会导致此错误。

所以解决方法是创建另一个管理员帐户

网络用户管理员/添加
网络用户管理员
网络本地组管理员管理员/添加

然后运行pywin32安装

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

于 2012-08-21T19:14:18.540 回答
5

没有一个解决方案对我有帮助(坐在 Windows 10 上)。

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

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

于 2015-08-24T08:07:16.767 回答
2

我遇到了和作者一样的问题。我使用来自Tim Golden python 员工的脚本来打印一个文本文件。运行后出现如下错误:

pywintypes.error: (31, 'ShellExecute', '连接到系统的设备无法运行。')

我的系统是windows 7、64位。python是python2.7 64位。

我认为该错误与pywin32的安装或windows系统设置无关。我猜原因是默认打开软件设置为 .txt 文件。因为在我将默认打开软件从 Nodepad++ 更改为记事本之后,我可以在我的 Hp 打印机上打印文件。

于 2015-02-03T08:51:07.863 回答
2

PowerShell command as admin在 Windows 10 上为我运行,但Command line prompt (as admin)失败了。

于 2017-06-27T11:22:08.200 回答
0

安装pywin32的步骤-

  1. 网络用户管理员/添加
  2. 网络用户管理员
  3. 网络本地组管理员管理员/添加
  4. runas /user:Admin pywin32-217.win32-py2.7.exe
于 2012-08-24T09:43:47.233 回答
0

当我通过以管理员身份运行安装程序文件来安装 pywin32-219.win-amd64-py2.7.exe 时,我遇到了同样的问题。

一旦我通过简单地执行文件(双击它)来安装它,我就再也没有遇到这个问题了。

我在带有 Python 2.7.9(64 位)的 Windows 7 64 位 SP1 上

但是,我确实注意到一件奇怪的事情,如果我只是双击安装程序 exe,则需要 20 多秒才能出现提示是否要运行 exe 文件,而如果以管理员身份运行文件,它发生在那时(不必等待那么久)我使用的是 120 GB SSD,所以在这种情况下不能质疑硬盘的缓慢性。

无论如何,在我的情况下,这是成功安装 pywin32 后的输出:

Copied pythoncom27.dll to C:\Windows\system32\pythoncom27.dll
Copied pythoncomloader27.dll to C:\Windows\system32\pythoncomloader27.dll
Copied pywintypes27.dll to C:\Windows\system32\pywintypes27.dll
Registered: Python.Interpreter 
Registered: Python.Dictionary 
Registered: Python 
-> Software\Python\PythonCore\2.7\Help[None]=None
-> Software\Python\PythonCore\2.7\Help\Pythonwin Reference[None]='C:\\Python27\\Lib\\site-packages\\PyWin32.chm'
Pythonwin has been registered in context menu
Creating directory C:\Python27\Lib\site-packages\win32com\gen_py
Shortcut for Pythonwin created
Shortcut to documentation created
The pywin32 extensions were successfully installed.
于 2015-01-23T12:37:52.673 回答
0

我用这个解决了它:

pip install pypiwin32
于 2016-08-11T19:34:37.627 回答