0

Ошибка импорта win32api в Python 2.6

11

Описание проблемы

Я столкнулся с ошибками при запуске Python 2.6 на 64-битной версии Windows. Ниже приведены сообщения об ошибках, которые я получаю:

  1. Ошибка при импорте:

    import win32api
    

    В результате возникает следующая ошибка:

    pywintypes26.dll
    
  2. Либо другая ошибка:

    pythoncom26.dll missing
    ImportError: DLL load failed: The specified module could not be found.
    

Я установил Python 2.6 с помощью MSI, и все необходимые DLL-файлы находятся по следующему пути:

C:\Python26\Lib\site-packages\pywin32_system32

Пожалуйста, помогите мне разобраться с этой проблемой.

5 ответ(ов)

0

Проблема была решена после того, как я скопировал файлы pywintypes26.dll и pythoncom26.dll из C:\Python26\Lib\site-packages\pywin32_system32 в C:\Python26\Lib\site-packages\win32. Если у вас возникают аналогичные проблемы с библиотеками pywin32, рекомендую попробовать этот шаг. Убедитесь, что вы используете правильные версии файлов, соответствующие вашей установке Python.

0

Проблема с импортом win32api может быть связана с тем, что скрипт post-install для pywin32 не сработал корректно. Этот скрипт отвечает за копирование таких файлов, как pythoncom26.dll, pythoncomloader26.dll и pywintypes26.dll, которые необходимы для работы библиотеки.

Вы можете решить эту проблему, запустив скрипт установки вручную. Для этого выполните следующую команду в командной строке:

python scripts\pywin32_postinstall.py -install

После этого ваша установка должна заработать. Если проблема не исчезнет, проверьте, правильно ли установлен pywin32 и все ли зависимости на месте.

0

У меня была похожая проблема при установке модуля в 64-битной версии Python 3.4.2. Я скачал исполняемый файл установки pywin32‑219.win‑amd64‑py3.4.exe с сайта http://www.lfd.uci.edu/~gohlke/pythonlibs/.

На сайте четко указано:

"Пользователи Python 3.4 должны вручную запустить python.exe Scripts\pywin32_postinstall.py -install из повышенной командной строки."

Я не сделал этого в первый раз: установил модуль из обычного окна командной строки и получил следующий вывод:

c:\python34>python.exe Scripts\pywin32_postinstall.py -install
Скопирован pythoncom34.dll в C:\Python34\pythoncom34.dll
Скопирован pywintypes34.dll в C:\Python34\pywintypes34.dll
У вас нет прав для установки объектов COM.
Пример объектов COM не был зарегистрирован.
и т.д.
Завершено сообщением "Расширения pywin32 были успешно установлены"...

Я только прочитал последнее предложение и, начав запускать код, столкнулся с ошибками загрузки этих DLL.

После этого я провел небольшое исследование, открыл повышенную командную строку (как: см. "http://www.sevenforums.com/tutorials/783-elevated-command-prompt.html") и снова выполнил:

c:\python34>python.exe Scripts\pywin32_postinstall.py -install
Скопирован pythoncom34.dll в C:\Windows\system32\pythoncom34.dll
Скопирован pywintypes34.dll в C:\Windows\system32\pywintypes34.dll
Зарегистрировано: Python.Interpreter
Зарегистрировано: Python.Dictionary
Зарегистрировано: Python
-> Software\Python\PythonCore\3.4\Help[None]=None
-> Software\Python\PythonCore\3.4\Help\Pythonwin Reference[None]='C:\\Python34\\Lib\\site-packages\\PyWin32.chm'
Pythonwin зарегистрирован в контекстном меню
Создана ярлык для Pythonwin
Создана ярлык для документации
Расширения pywin32 были успешно установлены.

Теперь мой код работает без проблем (по крайней мере в этом отношении... вздох, еще столько всего нужно сделать).

0

Для решения проблемы запустите установщик с правами администратора:

  1. Щелкните правой кнопкой мыши на файле pywin32-installer.exe.
  2. Выберите пункт "Запустить от имени администратора".

Это должно помочь!

0

Как было предложено выше, скрипт постустановки не выполняется, и эта проблема может возникнуть при установке из wheel (как я столкнулся с ней).

Попробуйте выполнить следующую команду:

python scripts\pywin32_postinstall.py -install

Если вы столкнулись с этой проблемой при установке через wheels, установка из следующего источника может решить указанную проблему:

https://pypi.python.org/pypi/pypiwin32

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь