Este es el archivo Léame de las extensiones Python para Win32 (pywin32), que proporciona acceso a muchas de las API de Windows desde Python.
Consulte CAMBIOS.txt para conocer los cambios notables recientes.
Los documentos son una historia larga y triste, pero ahora hay una versión en línea del archivo de ayuda que se envía con los instaladores (¡gracias @ofek!). Mucho de eso es muy antiguo, pero parte se genera automáticamente y es actual. ¡Me encantaría ayudarme a desenredar los documentos!
Siéntase libre de abrir problemas para todos los errores (o errores sospechosos) en pywin32. Las solicitudes de extracción para todos los errores o funciones también son bienvenidas.
Sin embargo, no abra los problemas de github para solicitudes de soporte generales , o para problemas o preguntas al utilizar los módulos de este paquete; se cerrarán. Para tales problemas, envíe un correo electrónico a la lista de correo de python-win32; tenga en cuenta que debe estar suscrito a la lista antes de publicar.
Ya no se admiten versiones binarias.
La compilación 306 fue la última con instaladores .exe. Realmente no deberías usarlos, pero si realmente los necesitas, encuéntralos aquí
Debes instalar pywin32 a través de pip, por ejemplo,
python -m pip install --upgrade pywin32
Hay un script posterior a la instalación (ver más abajo) que no debe ejecutarse dentro de entornos virtuales; sólo debe ejecutarse en instalaciones "globales".
Para cambios no publicados, puede descargar compilaciones realizadas mediante acciones de github: elija cualquier "flujo de trabajo" de la rama main
y descargue sus "artefactos")
Fuera de un entorno virtual es posible que desee instalar objetos COM, servicios, etc. Puede hacerlo ejecutando:
python Scripts/pywin32_postinstall.py -install
Desde la raíz de su instalación de Python.
Si hace esto con permisos normales, será global para su usuario (algunos archivos se copiarán a la raíz de su instalación de Python y se realizarán algunos cambios en HKCU). Si ejecuta esto desde un proceso elevado, será global para la máquina (los archivos se copiarán a System32, se cambiará HKLM, etc.)
Para ejecutarlo como un servicio, probablemente desee instalar pywin32 globalmente desde un símbolo del sistema elevado; consulte más arriba.
También debe asegurarse de que Python esté instalado en una ubicación donde el usuario que ejecuta el servicio tenga acceso a la instalación y pueda cargar pywintypesXX.dll
y pythonXX.dll
. En particular, la cuenta LocalSystem
normalmente no tendrá acceso a su estructura de directorio local %USER%
.
Si encuentra algún problema al actualizar como el siguiente:
The specified procedure could not be found
Entry-point not found
Por lo general significa una de 2 cosas:
Ha actualizado una instalación donde anteriormente se ejecutó el script posterior a la instalación. Entonces deberías ejecutarlo nuevamente:
python Scripts/pywin32_postinstall.py -install
Esto hará algunos pequeños intentos de limpiar instalaciones conflictivas más antiguas.
Hay otras DLL de pywin32 instaladas en su sistema, pero en una ubicación diferente a las nuevas. Esto sucede a veces en entornos que vienen con pywin32 preenviado (por ejemplo, ¿anaconda?).
Las posibles soluciones aquí son:
pywintypesXX.dll
y pythoncomXX.dll
(donde XX
es la versión de Python, por ejemplo, "39") Instale Visual Studio 2019 (más tarde probablemente funcione, pero las opciones pueden ser diferentes), siga las instrucciones en Entorno de compilación para la versión que instale.
(Los compiladores gratuitos probablemente también funcionen, pero no han sido probados. ¡Cuéntame tus experiencias!)
setup.py
es un script de compilación estándar de distutils, por lo que probablemente desees:
python setup.py install
o
python setup.py --help
Algunos módulos necesitan SDK oscuros para compilarse; setup.py
debería tener éxito y le indicará elegantemente por qué no pudo compilarlos; si la compilación realmente falla con su configuración, abra un problema.
Los siguientes pasos se realizan al realizar una nueva versión; esto es principalmente para formar una lista de verificación para que @mhammond no olvide qué hacer :)
Desde la compilación 307, el proceso de lanzamiento se basa en los artefactos creados por las acciones de Github.
Asegúrese de que CHANGES.txt tenga todo lo que vale la pena destacar. Actualice el encabezado para reflejar la compilación y la fecha próximas a ser lanzada, confírmelo.
Actualice setup.py con el nuevo número de compilación. Actualice CHANGES.txt para tener una nueva sección de encabezado para la próxima versión inédita. (es decir, una sección nueva y vacía "Próximamente en la compilación XXX, aún no publicada")
Envíe estos cambios a github, espere a que se completen las acciones y luego descargue los artefactos de esa ejecución.
Cargue artefactos .whl en pypi; hacemos esto antes de enviar la etiqueta porque podrían ser rechazados por un README.md
no válido. ¿Hecho a través de py -3.? -m twine upload dist/*XXX*.whl
.
Crea una nueva etiqueta git para el lanzamiento.
Actualice setup.py con el nuevo número de compilación + ".1" (por ejemplo, 123.1) para garantizar que las compilaciones de prueba futuras no se confundan con la versión real.
Asegúrese de que todo esté enviado a github, incluida la etiqueta (es decir, git push --tags
)
Enviar correo a python-win32
Este es el proceso antiguo que se usaba cuando se usaba un entorno de desarrollo local para crear las compilaciones. La compilación 306 fue la última lanzada con este proceso.
Asegúrese de que CHANGES.txt tenga todo lo que vale la pena destacar. Actualice el encabezado para reflejar la compilación y la fecha próximas a ser lanzada, confírmelo.
Actualice setup.py con el nuevo número de compilación.
Ejecute make_all.bat
, espere una eternidad y pruebe los artefactos.
Cargue artefactos .whl en pypi; hacemos esto antes de enviar la etiqueta porque podrían ser rechazados por un README.md
no válido. ¿Hecho a través de py -3.? -m twine upload dist/*XXX*.whl
.
Confirme setup.py (para que el nuevo número de compilación esté en el repositorio), cree una nueva etiqueta git
Cargue los instaladores .exe en github.
Actualice setup.py con el nuevo número de compilación + ".1" (por ejemplo, 123.1) para garantizar que las compilaciones de prueba futuras no se confundan con la versión real.
Asegúrese de que todo esté enviado a github, incluida la etiqueta (es decir, git push --tags
).
Enviar correo a python-win32