pythonnet(c#연동) 사용 문의 설치 위치 문제

조회수 313회

파이썬 코드를 C#에서 사용하고자 pythonnet을 설치하고 C# 테스트 코드를 만들었습니다.

일단 파이썬3.6 상태에서 pythonnet을 설치하고 테스트 하니 정상 작동하였습니다.

그런데 필요에 의해 3.10에 pythonnet을 설치 하고 테스트 하니 에러가 납니다.

3.6 이든 3.10 이든 pip install pythonnet 설치는 잘됩니다. 차이점은 설치 후 python.runtime.dll의 위치가 달라 집니다.

3.6 >> C:\Users\master\AppData\Local\Programs\Python\Python36\Lib\site-packages

3.10 >> C:\Users\master\AppData\Local\Programs\Python\Python310\Lib\site-packages\pythonnet\runtime

이 문제인지... 고수님 한수 부탁합니다.

static void Main(string[] args) {

 var pythonPath = @"C:\Users\master\AppData\Local\Programs\Python\Python36";

 Environment.SetEnvironmentVariable("PATH", $@"{pythonPath};" + 
 Environment.GetEnvironmentVariable("PATH"));
 Environment.SetEnvironmentVariable("PYTHONHOME", pythonPath);
 Environment.SetEnvironmentVariable("PYTHONPATH ", $@"{pythonPath}\Lib");

// 3.10 path로 바꾸면 아래에서 에러남
 PythonEngine.PythonHome = @"C:\Users\master\AppData\Local\Programs\Python\Python36";  

PythonEngine.Initialize();
using (Py.GIL())
{
    dynamic np = Py.Import("numpy");
    Console.WriteLine(np.cos(np.pi * 2));      
}

}

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)