如何在Windows上安装Python for .NET

use*_*521 16 .net c# python python.net pythonnet

我下载了Python for .NET.
里面的拉链是clr.pyd,nPython.exe,Python.Runtime.dll和2个调试数据库文件.
我把clr.pyd和Python.Runtime.dll放在我的python DLL目录C:\ Python27\DLLs中,认为这就是安装所需的全部内容.然后我打开Python GUI并输入import clr,我得到:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    import clr
SystemError: dynamic module not initialized properly
Run Code Online (Sandbox Code Playgroud)

新的python但不是.NET,想要使用CPython而不是IronPython.我在这个装置中缺少什么?Python for .NET的自述文件说有一个Windows软件包的安装,但我找到的只是zip文件.

den*_*ufa 15

在Python中加载CLR的正确方法是这样的:

  1. 确保Python安装文件夹中的Python.NET没有遗留任何旧东西(例如C:\ Python27).就我而言,我clr.pyd在其中一个文件夹中有遗产.请注意,某些旧版本的pip没有删除Python.NET的所有部分.
  2. 使用Python.NET文件(clr.pydPython.Runtime.dll)附加目录sys.path

现在,您可以以最灵活的方式加载CLR,甚至无需安装到Python目录!

你可以在github上从源代码编译:

pip install git+https://github.com/pythonnet/pythonnet
Run Code Online (Sandbox Code Playgroud)

或使用Christoph Gohlke的Windows车轮/安装工:

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

PyPI包可从pip安装:

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

这里列出了更多的安装选项,如docker,WinPython,conda,nuget,choco:

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


Dev*_*vin 5

安装Python for .NET的正确方法是将.zip中的所有文件复制到包含.py文件的目录中.

然后,如果你执行

python yourfilename.py
Run Code Online (Sandbox Code Playgroud)

你应该发现你的"import clr"语句有效.我使用python 2.7 x86和pythonnet-2.0-Beta0-clr4.0_140_py27_UCS2_x86.zip对此进行了测试

我只能通过将clr.pyd文件复制到我的工作目录来复制错误.

请注意,我无法在Python 3.3 x86或Python 3.3 x64中完成此工作

  • 这是因为sys.path包含当前目录,但携带pythonnet与每个.py脚本不是很灵活和维护噩梦. (2认同)