C↉呼び出しPythonスクリプトとPythonを使用した第三者モジュール

4482 ワード

C↉呼び出しPythonスクリプトとPythonを使用した第三者モジュール
  • Cは、PythonスクリプトとPythonを使用したサードパーティモジュールを呼び出します.
  • 参照ライブラリを追加する
  • CコードにはPython
  • が埋め込まれています.
  • Pythonコードをファイルから読み込む
  • Pythonを使用してインストールされた第3のモジュール
  • 私のホームページです.
    NETで実現したPython言語は、IroPythonを使って、NET環境でPythonコードを呼び出すことができます.
    【参照ライブラリの追加】
    Visual Studioに新しいプロジェクトを作成した後、IronPyton.dllとMicrosoft.Scripptingn.dllを参照してください.
    【C〓コードにPythonを埋め込む】
      の一番簡単な使い方は以下の通りです.
    var engine = IronPython.Hosting.Python.CreateEngine();
    engine.CreateScriptSourceFromString("print 'hello world!'").Execute();
    【ファイルからPythonコードを読み込む】
      普通の状況では、Pythonコードを単独でファイルに書きます.プロジェクトにPythonファイルを新たに作成し、ハロー.pyのように、直接にリリースパスの下に構築すればいいです.(また、そのプロパティCopy to Output Directoryの値はCopy if newerとしても設定できます.)ハロー.pyで下記のコードを作成します.
    #      
    def say_hello():
        print "hello!"
    #      
    def get_text():
        return "text from hello.py"
    #    
    def add(arg1, arg2):
        return arg1 + arg2
      C铅コードは以下の通りです.
    //  python  
    var engine = IronPython.Hosting.Python.CreateEngine();
    var scope = engine.CreateScope();
    var source = engine.CreateScriptSourceFromFile("hello.py");
    source.Execute(scope);
    //        
    var say_hello = scope.GetVariableobject>>("say_hello");
    say_hello();
    //        
    var get_text = scope.GetVariableobject>>("get_text");
    var text = get_text().ToString();
    Console.WriteLine(text);
    //      
    var add = scope.GetVariableobject, object, object>>("add");
    var result = add(1, 2);
    Console.WriteLine(result);
    【Pythonでインストールした第三モジュール】
      pythonのライブラリは直接スクリプトから呼び出すことができますが、第三者ライブラリの直接呼び出しには以下のエラーが発生します.
    An unhandled exception of type 'IronPython.Runtime.Exceptions.ImportException' occurred in Microsoft.Dynamic.dll
    Additional information: No module named rsa
      表示はモジュールが見つからないので、sys.pathを設定すればいいです.以下の通りです.
    import sys
    sys.path.append('C:\\Python27\\lib')
    sys.path.append('C:\\Python27\\lib\\site-packages\\setuptools-12.0.3-py2.7.egg')
    sys.path.append('C:\\Python27\\lib\\site-packages\\rsa-3.1.1-py2.7.egg')
    import rsa