如何在Windows上安装Python for .NET

本文关键字:Python for NET 安装 Windows | 更新日期: 2023-09-27 17:56:48

我下载了 Python for .NET.
zip内部是clr.pydnPython.exePython.Runtime.dll和2个调试数据库文件。
我把 clr.pyd 和 Python.Runtime.dll 放在我的 python DLL dir 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

刚接触python,但不是.NET,并且想使用CPython而不是IronPython。此安装中缺少什么?Python for .NET 的自述文件说有一个 Windows 包的安装,但我找到的只是 zip 文件。

如何在Windows上安装Python for .NET

在 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

或使用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

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

然后,如果您执行

python yourfilename.py

您应该发现您的"导入 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中完成这项工作

我实际上在这里自己动手,创建了一个 Python.Net 巧克力包装。要安装,只需运行

Cinst Pythonnet

在命令行中。也许这将帮助用户在运行它时遇到问题。

我还不知道

为什么,但我能让它工作的唯一方法是将这 3 个文件直接复制到 C:''Python27'' 目录中。

如果您打算使用 py2exe 或 pyinstall 冻结,请务必安装 dev 版本。当与py2exe,pyinstaller和其他冰柜打包时,2.0.0版本有问题。但是 2.1.0.dev1 效果很好。所以。。。

pip install --pre pythonnet

您必须将pythone.runtime.dll添加到捆绑包中(请参阅首选捆绑器的文档)。使用 bundle_files:1(单个 exe)时,py2exe 加载 dll 的方式也存在问题。