繁体   English   中英

安装和运行pywin32 2.7时出错

[英]Error installing and running pywin32 2.7

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

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

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

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

谢谢,迈克

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

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

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

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

这对我来说很好。

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

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

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

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

净用户管理员/添加
净用户管理员
net localgroup管理员管理员/添加

然后运行pywin32安装

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

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

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

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

我遇到了与作者相同的问题。 我使用Tim Golden python工作人员的脚本来打印文本文件。 运行后,出现以下错误:

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

我的系统是Windows 7,64位。 python是python2.7 64位。

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

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

安装pywin32的步骤 -

  1. 净用户管理员/添加
  2. 净用户管理员
  3. net localgroup管理员管理员/添加
  4. runas / user:Admin pywin32-217.win32-py2.7.exe

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

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

我在Windows 7 64位SP1上使用Python 2.7.9(64位)

但是,我确实注意到一个奇怪的事情,如果我只是双击安装程序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.

我用这个解决了它:

pip install pypiwin32

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM