web-dev-qa-db-fra.com

Comment installer le module win32com dans un virtualenv?

J'ai installé à la fois virtualenv et pywin32 sur mon ordinateur portable Windows 7 64 bits, et chacun semble fonctionner, mais pas les uns avec les autres.

Plus précisément, si un virtualenv est actif, l'exécution de import win32com.client dans un python interactif Shell échoue avec No module named win32com.client. Cependant, la même expression réussit si aucun virtualenv n'est actif.

Lorsque j'essaie d'installer pywin32 avec pip (c'est ainsi que j'installe normalement des modules lorsqu'un virtualenv est actif), j'obtiens l'erreur:

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

...même si pywin32 est l'un des modules répertoriés dans la sortie de

pip search pywin32

Par conséquent, pour installer pywin32du tout J'ai dû l'installer à l'aide d'un programme d'installation * .exe téléchargé depuis SourceForge.

Existe-t-il un moyen d'installer pywin32 dans un virtualenv?

16
kjo

MISE À JOUR 2016

Il existe maintenant une version de pywin32 sur PyPI qui peut être installée avec pip. On l'appelle pypiwin32, et il installe le package en utilisant le format binaire wheel.

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

pip install pypiwin32

Cela fonctionnera dans un virtualenv, ou avec tox, etc.


En dessous de cette ligne se trouve mon ancienne réponse précédente. Il s'agit désormais d'informations périmées.

ANCIENNE RÉPONSE - VIEILLI. Les versions modernes de virtualenv utilisent par défaut --no-site-packages. Cela signifie que ne pas avoir accès aux packages de sites globaux est désormais le comportement par défaut. Malheureusement (depuis juillet 2014), vous ne pouvez pas installer pywin32 sur votre virtualenv. ( voici le rapport de bogue ) Si vous voulez lancer pywin32 dans virtualenv, activez virtualenv et utilisez easy_install et le fichier exe du programme d'installation pywin32. Par exemple, easy_install "C:\Path\To\Downloads\pywin32-219.win32-py3.4.exe"

Question connexe

34
Christian Long

Essaye ça:

  1. Télécharger directement
  2. Activez votre virtualenv
  3. pip install --no-index --find-links:/local/dir/ SomePackage

Découvrez # 8 sur pip-installer.org (désolé, pas de permalien) /

6
chirinosky

Créez un virtualenv et activez-le: cd c:\Users\ernesto.luzon virtualenv --no-site-packages py351env py351env\Scripts\activate

De là, vous avez deux options:

  1. Téléchargez pywin32 depuis le projet sourceforge: http://sourceforge.net/projects/pywin32/files/pywin32/

  2. Téléchargez pywin32 depuis un site binaire non officiel (mais très utile): http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

Assurez-vous de télécharger la version correcte pour l'interpréteur Python installé dans votre environnement, sinon vous rencontrerez ImportError: DLL:% 1 n'est pas une application Win32 valide plus tard.

Si vous avez téléchargé depuis sourceforge, installez-le en utilisant easy_install: (py351env) C:\Users\ernesto.luzon\Downloads>easy_install pywin32-220.win-AMD64-py3.5.exe

Si vous avez téléchargé depuis gohlke, installez-le à l'aide de pip: (py351env) C:\Users\ernesto.luzon\Downloads>pip install pywin32-220-cp35-none-win_AMD64.whl

Si vous rencontrez une erreur ImportError: DLL échec de chargement: le module spécifié est introuvable plus tard, vous avez besoin des étapes supplémentaires suivantes:

Exécutez le script de post-installation: (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 ....

Notez où il a copié les fichiers "pythoncom35.dll" et "pywintypes35.dll". Vous devez déplacer ces fichiers dans le dossier: C:\Users\ernesto.luzon\py351env\Lib\site-packages\win32

2
ldiary