Ошибка при установке и запуске pywin32 2.7
Я придумал пару ошибок после установки:
pywin32-217.win32-py2.7
Недавно я обновил ArcGIS до 10.1, и он использует Python 2.7 (в отличие от версии 2.6, поставляемой с ArcGIS 10.0)
Когда я запускаю установщик на 64-разрядной версии Windows 7, он устанавливает, но выдает следующее сообщение:
закрыть сбой в деструкторе файлового объекта:
sys.excepthook отсутствует
lost sys.stderr
У меня был простой python script для печати на принтер из папки, содержащей файлы .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
Теперь, когда я запускаю script, я получаю следующую ошибку:
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) error: (31, "ShellExecute", "Устройство, подключенное к системе, не функционирование.)
Не удалось выполнить (BatchPrintFromPDFOnly2).
Я искал поисковые запросы и пробовал несколько решений, таких как запуск исполняемого файла в режиме устранения неполадок, но ошибка сохраняется. Может ли кто-нибудь предположить, что может это сделать?
В качестве дополнительной заметки я обновил 4 компьютера в своей компании до новой версии python и ArcGIS, и только одна из них бросает эту ошибку. Остальное отлично работает.
Спасибо,
Mike
Ответы
Ответ 1
У меня была та же проблема, но я решил ее немного по-другому. Вместо создания другой учетной записи администратора я смог выполнить pywin32-217.win32-py2.7.exe
успешно из командной строки, которую я начал с "Запуск от имени администратора".
Ответ 2
Альтернативное решение - это то, что Марк Хаммонд предлагает в списке рассылки pywin32:
Это похоже на то, что если пользовательский контроль доступа (UAC) отключен - это отключено для вас?
В любом случае, попробуйте запустить "скрипты python\pywin32_postinstall.py -install" из корня каталога установки, и все должно закончить регистрацию - это должно исправить следующую ошибку, которую вы видите.
Это сработало для меня.
Ответ 3
Вы не можете устанавливать как администратор, см. этот отчет об ошибке:
Возможно, это связано с тем, что вы используете Windows под учетной записью "Администратор", и все, что вы обычно запускаете, равно "запустить как администратор"
И парадоксально запускается установка pywin32 в Windows 7, поскольку администратор вызывает эту ошибку.
Итак, обходным путем является создание другой учетной записи администратора
net user Admin/добавить/ net user Admin
net localgroup Администраторы Admin/add
а затем запустите установку pywin32 с помощью
runas/user: Admin pywin32-217.win32-py2.7.exe
Ответ 4
Ни одно из решений не помогло мне (сидит в Windows 10).
Но я, наконец, исправился, когда запустил c:\python27\scripts\pywin32_postinstall.py -install
После установки вы можете попробовать запустить программу установки еще раз, чтобы убедиться, работали для меня.
Ответ 5
Я столкнулся с той же проблемой, что и автор. Я использовал script из Tim Golden python staff для печати текстового файла. После запуска появляются такие ошибки, как:
pywintypes.error: (31, 'ShellExecute', 'Устройство, подключенное к системе, не работает.')
Моя система - это окна 7, 64 бит. Питон python2.7 64bit.
Я думаю, что ошибка не имеет ничего общего с установкой pywin32 или настройками системы Windows. Я предполагаю, что причиной является установка программного обеспечения для открытия по умолчанию в .txt файле. Потому что после того, как я изменил программное обеспечение для открытия по умолчанию от Nodepad ++ до блокнота, я могу распечатать файл на своем Hp-принтере.
Ответ 6
Работа с PowerShell command as admin
работала для меня в Windows 10, где с ошибкой Command line prompt (as admin)
.
Ответ 7
Шаги по установке pywin32 -
- сетевой пользователь Admin/add
- net user Admin
- net localgroup Администраторы Admin/add
- runas/user: Admin pywin32-217.win32-py2.7.exe
Ответ 8
У меня возникла такая же проблема, когда я установил pywin32-219.win-amd64-py2.7.exe, запустив файл установщика в качестве администратора.
Как только я установил его, просто выполнив файл (дважды щелкнув по нему), я больше не сталкивался с этой проблемой.
Я нахожусь в Windows 7 64-разрядной версии SP1 с Python 2.7.9 (64 бит)
Однако, я заметил одну странную вещь, если я просто дважды щелкнул инсталлятор exe, потребовалось чуть более 20 секунд, чтобы появилось приглашение, хочу ли я запускать exe файл или нет, тогда как в случае запуска файла как администратор, это случилось именно тогда (не нужно было так долго ждать)
Я использую SSD на 120 ГБ, поэтому не могу сомневаться в медленности жесткого диска в этом случае.
В любом случае, здесь результат после успешной установки 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.
Ответ 9
Я решил это, используя это:
pip install pypiwin32