Как установить модуль win32com в virtualenv?

Я установил virtualenv и pywin32 на мой 64-битный ноутбук с Windows 7, и каждый из них, кажется, работает, но не друг с другом.

Более конкретно, если virtualenv активен, то запуск import win32com.client в интерактивной оболочке python завершается неудачно с No module named win32com.client. Однако то же выражение успешно выполняется, если не работает virtualenv.

Когда я пытаюсь установить pywin32 с pip (именно так я обычно устанавливаю модули, когда virtualenv активен), я получаю сообщение об ошибке:

  Could not find any downloads that satisfy the requirement pywin32
No distributions at all found for pywin32

... хотя pywin32 является одним из модулей, перечисленных в выходных данных

pip search pywin32

Поэтому, чтобы вообще установить pywin32, мне пришлось установить его с помощью установщика *.exe, загруженного из SourceForge.

Есть ли способ установить pywin32 в virtualenv?

Ответ 1

ОБНОВЛЕНИЕ 2016

Теперь есть версия pywin32 на PyPI, которая может быть установлена ​​с помощью pip. Он называется pypiwin32, и он устанавливает пакет, используя двоичный формат wheel.

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

pip install pypiwin32

Это будет работать в virtualenv, или с помощью tox и т.д.


Ниже этой строки мой предыдущий старый ответ. Это устаревшая информация.

СТАРИННЫЙ ОТВЕТ - НАХОД. Современные версии virtualenv по умолчанию --no-site-packages. Это означает, что отсутствие доступа к глобальным пакетам сайтов теперь является поведением по умолчанию.    К сожалению, (по состоянию на июль 2014 года) вы не сможете установить pywin32 в свой virtualenv. (здесь отчет об ошибке)    Если вы хотите, чтобы pywin32 работал внутри virtualenv, активируйте virtualenv и используйте файл easy_install и pywin32 exe exe. Например      easy_install "C:\Path\To\Downloads\pywin32-219.win32-py3.4.exe"

Связанный с этим вопрос

Ответ 2

Попробуйте следующее:

Отъезд # 8 на pip-installer.org (извините, не дано)/

Ответ 3

Создайте virtualenv и активируйте его: cd c:\Users\ernesto.luzon virtualenv --no-site-packages py351env py351env\Scripts\activate

Здесь у вас есть два варианта:

Убедитесь, что вы загрузили правильную версию для Python Interpreter, установленную в вашей среде, иначе вы столкнетесь с ImportError: сбой загрузки DLL:% 1 не является допустимым приложением Win32 позже.

Если вы загрузили исходный код, установите его с помощью easy_install: (py351env) C:\Users\ernesto.luzon\Downloads>easy_install pywin32-220.win-amd64-py3.5.exe

Если вы скачали с gohlke, установите его с помощью pip: (py351env) C:\Users\ernesto.luzon\Downloads>pip install pywin32-220-cp35-none-win_amd64.whl

Если вы столкнулись с ImportError: Ошибка загрузки DLL: ошибка с указанным модулем не удалась, вам понадобятся следующие дополнительные шаги:

Запустите post install script: (py351env) C:\Users\ernesto.luzon>python py351env\Scripts\pywin32_postinstall.py -install Copied pythoncom35.dll to C:\Users\ernesto.luzon\py351env\pythoncom35.dll Copied pywintypes35.dll to C:\Users\ernesto.luzon\py351env\pywintypes35.dll ....

Обратите внимание, где он скопировал файлы 'pythoncom35.dll' и 'pywintypes35.dll'. Вам нужно переместить эти файлы в папку: C:\Users\ernesto.luzon\py351env\Lib\site-packages\win32