c#으로 굳이 Python 스크립트(딥러닝)을 돌리는 이유가 뭐냐고 물어본다면
C#으로 만들어진 Main Infrastructure을 유지하고 싶기 때문이다.
그렇다고 해서 python 스크립트 전체를 C#으로 컨버팅 하기도 만만치 않은 작업 (어쩌면 불가능)이라고 생각되기 때문.
한번 해봅시다!
1. IronPython
일단 C#에서 python의 함수 메소드들을 호출하는 방법으로 추천되었던 방법이였다.
일단 다음과 같이 c#콘솔 프로젝트를 만들고 c# 클래스를 다음과 같이 만들었다.
그리곤, Project1에 참조로 Ironpython 을 다운로드 받고 해당 dll을 참조로 불러왔다.
ironpython 을 다운로드 받는 링크는 아래와 같다.
c#코드는 아래와 같다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
//파이선을 실행하기 위해 추가
using IronPython;
using IronPython.Hosting;
using IronPython.Runtime;
using IronPython.Modules;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//먼저 참조추가에서 IronPython을 추가하야 한다.
var engine = IronPython.Hosting.Python.CreateEngine();
var scope = engine.CreateScope();
try
{
//파이선 프로그램 파일 실행.
var source = engine.CreateScriptSourceFromFile("simple.py");
source.Execute(scope);
// call def HelloWorld() :
var Fnhelloworld = scope.GetVariable<Func
그리고 Simple.py를 Projet1의 실행파일이 만들어지는 곳에 넣어준다.
Simple.py 코드는 아래와 같다.
def HelloWorld():
data = 'Hello World C#'
return data
def HelloWorld2( data ):
return data
def ListTest():
data = []
data.append('Hello')
data.append('World')
data.append('black falcon')
return data
class MyClass(object):
def __init__(self, value):
self.value = value
그리곤, c#코드를 실행하면 다음과 같은 결과를 얻을 수 있다 .
단순하게 python으로 작성된 함수들을 호출하는 코드이다.
그러면 ironpython을 쓰면 딥러닝도 해결될까?
그래서 한번 예전에 작생했던 pymysql코드를 가져와봤다.
하지만 결과는 import 부터 문제였다.
결과는 아래와 같았으며,
응급처치로 관련 Lib관련된 폴더들을 exe실행파일이 있는곳에 복붙을 했지만
pymysql은 해결되었지만 ... 다른 문제가 발생했었다.
결과는 decimal이 없다고 하는데 이건 파이썬의 기본 클래스이다.
이부분은 어떻게 해결해야되는지 고민하고 있다.
'컴퓨터 프로그래밍' 카테고리의 다른 글
C#에서 Python 으로 만들어진 딥러닝 스크립트를 돌려보자 PROJECT (1) | 2019.06.19 |
---|---|
C#에서 Python 으로 만들어진 딥러닝 스크립트를 돌려보자 PROJECT (0) | 2019.06.19 |
Mysql DML LIMIT 집합함수 유용한 함수들. (0) | 2019.06.18 |
MySQL DML , 중복제거 논리연산자사용, 쿼리결과 정렬 (0) | 2019.06.18 |
Mysql CRUD 실습3 (0) | 2019.06.18 |