Error installing and running pywin32 2.7
Asked Answered
T

9

18

I am coming up with a couple errors after installing:

pywin32-217.win32-py2.7

I have recently upgraded ArcGIS to 10.1 and it uses Python 2.7 (as opposed to 2.6 that came with ArcGIS 10.0)

When I run the installer on a Windows 7 64 bit, it installs, but throws the following message:

close failed in file object destructor:

sys.excepthook is missing

lost sys.stderr

I had a simple python script to print to a printer from a folder containing .pdf files which worked before my upgrade

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

Now when I run the script, I get the following error:

Traceback (most recent call last): File "Z:\ESRI\Python\Solstice_Tools_Scripts\Printer_Tools\Batch_Print_From_PDF_Only\BatchprintFromPDFOnly_Test.py", line 34, in win32api.ShellExecute(0, "print", pdfname, None, ".", 0) error: (31, 'ShellExecute', 'A device attached to the system is not functioning.')

Failed to execute (BatchPrintFromPDFOnly2).

I've been googling around and have tried a few solutions, like running the executable in troubleshooting mode, but the error persists. Can anyone suggest what may cause this?

As a side note, I upgraded 4 computers in my company to the new version of python and ArcGIS, and only one of them is throwing this error. The rest work fine.

Thanks, Mike

Timtima answered 19/6, 2012 at 17:34 Comment(2)
If it's only a problem on one computer, is it simple to uninstall/reinstall on that machine?Lollop
@ Thomas. I've tried to uninstall multiple times. Unfortunately, the issue still persists.Timtima
T
43

I had the same problem, but solved it a bit differently. Instead of creating another admin account, I was able to execute the pywin32-217.win32-py2.7.exe successfully from a command prompt that I started with Run as Administrator.

Trenna answered 12/1, 2014 at 23:30 Comment(6)
This worked and it seems to be a much easier solution. Kudos!Broadwater
Same worked for me. I also made sure that my path variables PYTHONPATH=D:\Python27 and PYTHONPATH=D:\Python27\Scripts were set properly.Gan
Run as Admin worked for me as well. I'd be curious to understand why.Tinsel
Running the exe as admin didn't work for me. But as he said starting a command prompt as admin and then running the pywin32 from there worked!! Strange! Mine is Windows 8.1, python 2.7.9 64 bitSchram
This also worked for me, whereas directly running the exe in admin did not (same as atique).Waterfowl
Same problem as asker and this solves it for pywin32-220.win32-py2.7Enterpriser
B
9

An alternate solution is what Mark Hammond suggests on the pywin32 mailing list:

This seems to happen if User Access Control (UAC) is disabled - is it disabled for you?

Either way, try running "python scripts\pywin32_postinstall.py -install" from the root of the install directory and things should finish registering - that should fix the next error you see.

This worked fine for me.

Booty answered 23/1, 2014 at 19:43 Comment(1)
Run this post-install script worked for me, as the "Run as Administrator" tip had failed. ThxPlaygoer
C
6

You must not install as administrator, see this bug report:

This is maybe because you are running Windows under the "Administrator" account and anything you normally run is equal to a "run as Administrator"

And paradoxically running the installation of pywin32 on Windows 7 as Administrator causes this error.

So a workaround is to create another admin account

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

and then run the pywin32 installation with

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

Camden answered 21/8, 2012 at 19:14 Comment(4)
worked for me too, just have to setup a password for the account (can be done from computer management).Sluice
Yup! This worked perfectly - just don't forget to set the password or you may get the error: "1327: Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced." Haha, guess how I know this... :-)Cassity
Oh, and this may seem obvious, but remember your pywin file may not be the same so the last line may differ. For example, mine was: runas /user:Admin pywin32-219.win-amd64-py2.7.exeCassity
That is AMAZING. I actually didn't login as Administrator but still got this error. However, once I use runas with my current account, it works.Indistinct
J
5

None of the solutions helped me (Sitting on Windows 10).

But I finally got it fixed when I ran c:\python27\scripts\pywin32_postinstall.py -install

After installation you can try to run the installer again just to be sure, worked for me.

Joelynn answered 24/8, 2015 at 8:7 Comment(3)
I got ImportError: DLL load failed: The specified module could not be found because of thatMinsk
I am using Windows 10 too btw. I didn't get this problem in the previous versions of WindowsMinsk
ran c:\python27\scripts\pywin32_postinstall.py -install what do you mean by this?Langur
S
2

I encountered the same problem as the author. I used the script from Tim Golden python staff to print a text file. After running, there are errors like the following:

pywintypes.error: (31, 'ShellExecute', 'A device attached to the system is not functioning.')

My system is windows 7, 64 bit. The python is python2.7 64bit.

I think the error has nothing to do with pywin32's installation or windows system settings. I guess the reason is the default opening software setting to .txt file. Because after I changed the default opening software from Nodepad++ to notepad, then I can print the file on my Hp printer.

Stanfield answered 3/2, 2015 at 8:51 Comment(1)
Same thing here, if default app is notepad instead of notepad++ Tim's script works just fine.Graeco
C
2

Running from a PowerShell command as admin worked for me on Windows 10, where as a Command line prompt (as admin) failed.

Capon answered 27/6, 2017 at 11:22 Comment(0)
T
0

Steps to install pywin32 -

  1. net user Admin /add
  2. net user Admin
  3. net localgroup Administrators Admin /add
  4. runas /user:Admin pywin32-217.win32-py2.7.exe
Tomika answered 24/8, 2012 at 9:43 Comment(0)
I
0

I faced same issue when I installed pywin32-219.win-amd64-py2.7.exe by running the installer file as administrator.

Once I installed it by simply executing the file (double clicking on it), I didn't face this issue again.

I am on Windows 7 64 bit SP1 with Python 2.7.9 (64 bit)

However, I did notice one strange thing, if I just double clicked the installer exe it took slightly over 20 seconds for the prompt to appear whether I would like to run the exe file or not, whereas in case of running the file as administrator, it happened right then (didn't have to wait for that long) I am using 120 GB SSD so can't question the slowness of Hard disk in this case.

Anyways, here's the output after successful installation of pywin32 in my case:

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.
Inheritance answered 23/1, 2015 at 12:37 Comment(0)
M
0

I solved it using this:

pip install pypiwin32
Minsk answered 11/8, 2016 at 19:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.