Cómo instalar Python para .NET en Windows

Descargué Python para .NET .
Dentro de la cremallera hay clr.pyd , nPython.exe , Python.Runtime.dll y 2 archivos de base de datos de depuración.
Puse clr.pyd y Python.Runtime.dll en mi DLL de python dir C: \ Python27 \ DLLs pensando que esto es todo lo que se necesita para la instalación. Luego abro la GUI de Python y escribo import clr y obtengo:

 Traceback (most recent call last): File "", line 1, in  import clr SystemError: dynamic module not initialized properly 

Nuevo en python pero no .NET y desea utilizar el CPython y no IronPython. ¿Qué me falta en esta instalación? El archivo Léame de Python para .NET dice que hay una instalación para el paquete de Windows, pero todo lo que encontré fue el archivo zip.

La forma correcta de cargar CLR en Python es así:

  1. Asegúrese de que no quede nada de Python.NET en la carpeta de instalación de Python (por ejemplo, C: \ Python27). En mi caso tuve clr.pyd heredado en una de las carpetas. Tenga en cuenta que pip para algunas versiones anteriores no eliminó todas las partes de Python.NET.
  2. Agregue el directorio con archivos clr.pyd ( clr.pyd y Python.Runtime.dll ) a sys.path

¡Ahora puede cargar CLR de la manera más flexible sin siquiera instalarlos en los directorios de Python!

Puedes comstackr desde la fuente en github:

 pip install git+https://github.com/pythonnet/pythonnet 

o use las ruedas / instaladores de Windows de Christoph Gohlke:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonnet

El paquete PyPI está disponible para su instalación desde pip:

https://pypi.python.org/pypi/pythonnet

Más opciones de instalación tales como docker, WinPython, conda, nuget, choco se enumeran aquí:

https://github.com/pythonnet/pythonnet/wiki/Installation

La forma correcta de instalar Python para .NET es copiar TODOS los archivos de .zip en el directorio que contiene su archivo .py.

Entonces si ejecutas

 python yourfilename.py 

usted debe encontrar que su statement “importar clr” funciona. He probado esto usando python 2.7 x86 y pythonnet-2.0-Beta0-clr4.0_140_py27_UCS2_x86.zip

Pude replicar su error copiando solo el archivo clr.pyd en mi directorio de trabajo.

Tenga en cuenta que no pude hacer que esto funcione en Python 3.3 x86 o Python 3.3 x64

De hecho, tomé el asunto en mis propias manos aquí y creé un paquete Chocolatey de Python.Net. para instalar, simplemente ejecute

cinst pythonnet

en la línea de comando. Tal vez esto ayudará a los usuarios que tienen problemas para hacer que esto se ejecute.

Todavía no sé por qué, pero la única forma de hacerlo funcionar es copiar esos 3 archivos en el directorio C: \ Python27 \ directamente.

Si planea congelar con py2exe o pyinstall, asegúrese de instalar la versión dev. Hay algo mal con la versión 2.0.0 cuando está empaquetado con py2exe, pyinstaller y quizás otros congeladores. Pero 2.1.0.dev1 funciona bien. Asi que…

pip install --pre pythonnet

Y tendrás que agregar el archivo pythone.runtime.dll al paquete (consulta la documentación de tu proveedor preferido). También hay un problema con la forma en que py2exe carga la dll al usar bundle_files: 1 (single exe).