Il s'agit du fichier Lisez-moi des extensions Python pour Win32 (pywin32), qui permettent d'accéder à de nombreuses API Windows à partir de Python.
Voir CHANGES.txt pour les changements notables récents.
La documentation est une longue et triste histoire, mais il existe maintenant une version en ligne du fichier d'aide fourni avec les installateurs (merci @ofek !). Une grande partie de ces informations sont très anciennes, mais certaines sont générées automatiquement et actuelles. J'adorerais aider à démêler les documents !
N'hésitez pas à ouvrir des tickets pour tous les bugs (ou bugs suspectés) dans pywin32. les pull-requests pour tous les bugs ou fonctionnalités sont également les bienvenus.
Cependant, veuillez ne pas ouvrir les problèmes github pour des demandes d'assistance générales , ou pour des problèmes ou des questions utilisant les modules de ce package - ils seront fermés. Pour de tels problèmes, veuillez envoyer un e-mail à la liste de diffusion python-win32 - notez que vous devez être abonné à la liste avant de publier.
Les versions binaires ne sont plus prises en charge.
La build 306 était la dernière avec des installateurs .exe. Vous ne devriez vraiment pas les utiliser, mais si vous en avez vraiment besoin, trouvez-les ici
Vous devez installer pywin32 via pip - par exemple,
python -m pip install --upgrade pywin32
Il existe un script de post-installation (voir ci-dessous) qui ne doit pas être exécuté dans des environnements virtuels ; il ne doit être exécuté que dans le cadre d'installations "globales".
Pour les modifications inédites, vous pouvez télécharger les builds réalisés par les actions github - choisissez n'importe quel "workflow" dans la branche main
et téléchargez ses "artefacts")
En dehors d'un environnement virtuel, vous souhaiterez peut-être installer des objets COM, des services, etc. Vous pouvez le faire en exécutant :
python Scripts/pywin32_postinstall.py -install
Depuis la racine de votre installation Python.
Si vous faites cela avec des autorisations normales, ce sera global pour votre utilisateur (quelques fichiers seront copiés à la racine de votre installation Python et certaines modifications seront apportées à HKCU). Si vous l'exécutez à partir d'un processus élevé, ce sera global pour la machine (les fichiers seront copiés sur System32, HKLM sera modifié, etc.)
Pour exécuter en tant que service, vous souhaiterez probablement installer pywin32 globalement à partir d'une invite de commande élevée - voir ci-dessus.
Vous devez également vous assurer que Python est installé dans un emplacement où l'utilisateur exécutant le service a accès à l'installation et est capable de charger pywintypesXX.dll
et pythonXX.dll
. En particulier, le compte LocalSystem
n'aura généralement pas accès à votre structure de répertoires %USER%
locale.
Si vous rencontrez des problèmes lors de la mise à niveau comme suit :
The specified procedure could not be found
Entry-point not found
Cela signifie généralement l'une des deux choses suivantes :
Vous avez mis à niveau une installation sur laquelle le script de post-installation a déjà été exécuté. Vous devriez donc le relancer :
python Scripts/pywin32_postinstall.py -install
Cela fera quelques petites tentatives pour nettoyer les anciennes installations en conflit.
Il existe d'autres DLL pywin32 installées sur votre système, mais à un emplacement différent des nouvelles. Cela se produit parfois dans les environnements fournis avec pywin32 pré-livré (par exemple, anaconda ?).
Les solutions possibles ici sont :
pywintypesXX.dll
et pythoncomXX.dll
(où XX
est la version de Python - par exemple, "39") Installez Visual Studio 2019 (fonctionne probablement plus tard, mais les options peuvent être différentes), suivez les instructions dans Environnement de construction pour la version que vous installez.
(les compilateurs gratuits fonctionnent probablement aussi, mais n'ont pas été testés - faites-moi part de vos expériences !)
setup.py
est un script de build distutils standard, vous voulez donc probablement :
python setup.py install
ou
python setup.py --help
Certains modules nécessitent des SDK obscurs pour être construits - setup.py
devrait réussir, vous indiquant gracieusement pourquoi il n'a pas réussi à les construire - si la construction échoue réellement avec votre configuration, veuillez ouvrir un problème.
Les étapes suivantes sont effectuées lors de la création d'une nouvelle version - il s'agit principalement de former une liste de contrôle afin que @mhammond n'oublie pas quoi faire :)
Depuis la build 307, le processus de publication est basé sur les artefacts créés par les actions Github.
Assurez-vous que CHANGES.txt contient tout ce qui mérite d'être noté. Mettez à jour l'en-tête pour refléter la version et la date sur le point d'être publiée, validez-le.
Mettez à jour setup.py avec le nouveau numéro de build. Mettez à jour CHANGES.txt pour avoir une nouvelle section de titre pour la prochaine version inédite. (c'est-à-dire une nouvelle section vide "À venir dans la version XXX, pas encore publiée")
Transférez ces modifications vers github, attendez la fin des actions, puis téléchargez les artefacts de cette exécution.
Téléchargez les artefacts .whl sur pypi - nous le faisons avant de pousser la balise car ils pourraient être rejetés pour un README.md
non valide. Fait via py -3.? -m twine upload dist/*XXX*.whl
.
Créez une nouvelle balise git pour la version.
Mettez à jour setup.py avec le nouveau numéro de build + ".1" (par exemple, 123.1), pour garantir que les futures versions de test ne seront pas confondues avec la version réelle.
Assurez-vous que tout est poussé vers github, y compris la balise (c'est-à-dire git push --tags
)
Envoyer un mail à python-win32
Il s'agit de l'ancien processus utilisé lorsqu'un environnement de développement local était utilisé pour créer les builds. La build 306 a été la dernière publiée avec ce processus.
Assurez-vous que CHANGES.txt contient tout ce qui mérite d'être noté. Mettez à jour l'en-tête pour refléter la version et la date sur le point d'être publiée, validez-le.
Mettez à jour setup.py avec le nouveau numéro de build.
Exécutez make_all.bat
, attendez indéfiniment, testez les artefacts.
Téléchargez les artefacts .whl sur pypi - nous le faisons avant de pousser la balise car ils pourraient être rejetés pour un README.md
non valide. Fait via py -3.? -m twine upload dist/*XXX*.whl
.
Validez setup.py (pour que le nouveau numéro de build soit dans le dépôt), créez une nouvelle balise git
Téléchargez les installateurs .exe sur github.
Mettez à jour setup.py avec le nouveau numéro de build + ".1" (par exemple, 123.1), pour garantir que les futures versions de test ne seront pas confondues avec la version réelle.
Assurez-vous que tout est poussé vers github, y compris la balise (c'est-à-dire git push --tags
)
Envoyer un mail à python-win32