52 votes

Comment puis-je utiliser pywin32 avec un virtualenv sans avoir à inclure le dossier site-packages de l'environnement hôte ?

Je travaille avec PyInstaller sous Python 2.6, qui n'est que partiellement supporté en raison du désordre créé par MS avec leur manifeste absurde qui affecte maintenant Python puisqu'il est maintenant compilé avec MSVC8.

Le problème est que la prise en charge de l'incorporation du manifeste repose sur l'option pywin32 afin de les construire, ce qui est pénible car si je n'inclus pas le dossier des paquets du site de l'hôte lorsque je crée l'extension virtualenv (Je ne trouve pas le moyen d'installer les extensions nécessaires pour qu'elles soient accessibles à PyInstaller.

Quelqu'un a-t-il trouvé une solution à ce problème ?

75voto

d3vid Points 1340

J'ai trouvé http://old.nabble.com/Windows:-virtualenv-and-pywin32--td27658201.html qui a proposé la solution suivante, qui a fonctionné pour moi :

  1. Téléchargez la dernière version de pywin32 .exe de l'installateur de http://sourceforge.net/projects/pywin32/
  2. Activez votre virtualenv
  3. Exécuter easy_install blah.exe où le chemin correspond à votre fichier téléchargé

Une solution similaire se trouve sur la même page :

  1. Obtenez l'URL de l'exe à partir de http://sourceforge.net/projects/pywin32/
  2. Activez votre virtualenv
  3. Exécuter easy_install http://path.to/.exe/download

J'ai eu cette erreur pour la deuxième solution :

erreur : c : \users\blah\appdata\local\temp\easy_install -ibkzv7 \pywin32 -214.win32-py2.6.exe n'est pas un .exe Windows distutils valide

...mais tovmeod rapporte dans les commentaires qu'elle fonctionne maintenant avec les versions modernes de setuptools (vers février 2014). Si cela ne fonctionne pas pour vous, essayez plutôt la première méthode.


J'ai plutôt espéré essayer "pip install" plutôt que "easy_install", mais cela n'a pas fonctionné.


Enfin, j'ai trouvé mais n'ai pas testé la solution à http://www.mail-archive.com/python-list@python.org/msg272040.html qui est :

J'ai résolu ce problème en copiant le fichier pywin32.pth dans mon site-packages virtualenv et en modifiant le fichier pour qu'il pointe vers le chemin.

Si les autres ne vous conviennent pas, peut-être que celle-ci vous conviendra ?

4voto

jkp Points 20410

Bon, puisque je devais trouver un moyen d'avancer, j'ai improvisé. J'ai créé en interne un dépôt git avec une version bricolée de pywin32 qui s'installera dans un virtualenv en utilisant la procédure standard d'installation de pywin32. setup.py script. Il a fallu beaucoup de manipulations pour que cela fonctionne correctement, mais j'ai réussi à le charger et le code dépendant fonctionne maintenant comme je le souhaite. Si les gens pensent que cela pourrait être utile à la communauté, veuillez poster un commentaire : si j'en ai assez, j'essaierai de mettre quelque chose sur mon compte github.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X