安装后我想出了几个错误:
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,其中只有一台是抛出此错误。其余的工作正常。
谢谢, 麦克
答案 0 :(得分:41)
我有同样的问题,但解决方法有点不同。我没有创建另一个管理员帐户,而是能够从我以以管理员身份运行开始的命令提示符中成功执行pywin32-217.win32-py2.7.exe
。
答案 1 :(得分:9)
另一种解决方案是Mark Hammond建议的on the pywin32 mailing list:
如果禁用用户访问控制(UAC),似乎就会发生这种情况 为你禁用?
无论哪种方式,尝试运行“python scripts \ pywin32_postinstall.py -install” 从安装目录的根目录,事情应该完成注册 - 这应该可以解决您看到的下一个错误。
这对我来说很好。
答案 2 :(得分:6)
您必须不以管理员身份安装,请参阅此bug report:
这可能是因为您在“管理员”帐户下运行Windows,而您通常运行的任何内容都等同于“以管理员身份运行”
矛盾的是,在Windows 7上以管理员身份运行pywin32会导致此错误。
因此,解决方法是创建另一个管理员帐户
净用户管理员/添加
净用户管理员 net localgroup Administrators Admin / add然后使用
运行pywin32安装runas / user:Admin pywin32-217.win32-py2.7.exe
答案 3 :(得分:5)
这些解决方案都没有帮助我(坐在Windows 10上)。
但是当我运行c:\ python27 \ scripts \ pywin32_postinstall.py -install
时,我终于解决了问题。安装完成后,您可以尝试再次运行安装程序,以确保为我工作。
答案 4 :(得分:2)
我遇到了与作者相同的问题。我使用Tim Golden python staff中的脚本打印文本文件。运行后,会出现以下错误:
pywintypes.error:(31,'ShellExecute','连接到系统的设备无法运行。')
我的系统是Windows 7,64位。 python是python2.7 64位。
我认为该错误与pywin32的安装或Windows系统设置无关。我想原因是默认打开软件设置为.txt文件。因为我将默认打开软件从Nodepad ++更改为记事本后,我可以在我的Hp打印机上打印该文件。
答案 5 :(得分:2)
从PowerShell command as admin
在Windows 10上为我工作,Command line prompt (as admin)
失败。
答案 6 :(得分:0)
安装pywin32的步骤 -
答案 7 :(得分:0)
我通过以管理员身份运行安装程序文件来安装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.
答案 8 :(得分:0)
我用这个解决了它:
pip install pypiwin32