Как установить модуль 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
Попробуйте следующее:
- Загрузка напрямую
- Включение виртуального пользователя
-
pip install --no-index --find-links:/local/dir/ SomePackage
Отъезд # 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