C# 蟒蛇3中的蟒蛇脑

C# 蟒蛇3中的蟒蛇脑,c#,importerror,python.net,C#,Importerror,Python.net,环境: Pythonnet版本:2.3.0,在Amaconda3中与pip一起安装 Python版本:3.6.6与Anaconda一起使用 Visual Studio 2017社区 操作系统:Windows 7,64位 我正在运行Pythonnet的Visbrain模块。 我在Anaconda3中创建了一个名为py36的虚拟环境。水蟒3号在D区。 试图在我的c#程序中运行以下代码 但它会弹出一个错误 Python.Runtime.PythonException: 'ModuleNotFoun

环境:

  • Pythonnet版本:2.3.0,在Amaconda3中与pip一起安装
  • Python版本:3.6.6与Anaconda一起使用
  • Visual Studio 2017社区
  • 操作系统:Windows 7,64位
我正在运行Pythonnet的Visbrain模块。 我在Anaconda3中创建了一个名为py36的虚拟环境。水蟒3号在D区。 试图在我的c#程序中运行以下代码

但它会弹出一个错误

Python.Runtime.PythonException: 'ModuleNotFoundError : No module named 'visbrain''
堆栈跟踪:

Python.Runtime.PythonException
  HResult=0x80131500
  Message=ModuleNotFoundError : No module named 'visbrain'
  Source=Python.Runtime
  StackTrace:
我在Lib\site软件包下安装了visbrain

尝试解决方案但未成功:

1) 在环境变量中添加路径、PYTHONHOME。 路径:D:\Anaconda3\envs\py36; 蟒蛇之家:D:\Anaconda3\envs\py36

(二) 添加了PYTHONPATH:D:\Anaconda3\envs\py36\Lib\site包

===

奇怪的是,“numpy”模块也在Lib\site包中

当我尝试下面的例子

dynamic np = Py.Import("numpy");
很好

想知道这里的问题是什么以及如何解决,谢谢。

根据

它提到

“无法加载DLL pythonXX”:未安装或未安装CPython 已在%PATH%和%PYTHONHOME%环境变量中注册。 或者在初始化之前设置PythonEngine.PythonHome属性 Python运行时

您可以通过编码来设置PythonHome和Path,而不是手动设置PythonHome和Path

PythonEngine.Initialize()之前
只要记住设置路径和PYTHONHOME,就像示例一样

// Modify Path
string path = @"d:\Anaconda3\envs\py36;" + Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine); 

// Set Path
Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);

// Set PythonHome
Environment.SetEnvironmentVariable("PYTHONHOME", @"d:\Anaconda3\envs\py36", EnvironmentVariableTarget.Process);

// Set PythonPath
// ONLY SET THIS IF YOU ARE SURE WHAT YOU ARE DOING
Environment.SetEnvironmentVariable("PYTHONPATH", @"d:\Anaconda3\envs\py36\Lib", EnvironmentVariableTarget.Process);

我对Miniconda也有类似的问题,显然Python.NET不能很好地与conda配合使用。请参阅:最好是重新安装python(不使用conda)

// Modify Path
string path = @"d:\Anaconda3\envs\py36;" + Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine); 

// Set Path
Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);

// Set PythonHome
Environment.SetEnvironmentVariable("PYTHONHOME", @"d:\Anaconda3\envs\py36", EnvironmentVariableTarget.Process);

// Set PythonPath
// ONLY SET THIS IF YOU ARE SURE WHAT YOU ARE DOING
Environment.SetEnvironmentVariable("PYTHONPATH", @"d:\Anaconda3\envs\py36\Lib", EnvironmentVariableTarget.Process);