Установите модули IronPython - PullRequest
0 голосов
/ 04 июля 2019

Я добавил пакеты IronPython Nuget в свое решение Visual Studio Winform C # для использования скриптов Python из кода.

Ниже мой код:

private void BtnJsonPy_Click(object sender, EventArgs e)
{
    // 1. Create Engine
    var engine = Python.CreateEngine();

    //2. Provide script and arguments
    var script = @"C:\path\repos\SamplePy\SamplePy2\SamplePy2.py"; // provide full path
    var source = engine.CreateScriptSourceFromFile(script);

    // dummy parameters to send Python script 
    int x = 3;
    int y = 4;

    var argv = new List<string>();
    argv.Add("");
    argv.Add(x.ToString());
    argv.Add(y.ToString());

    engine.GetSysModule().SetVariable("argv", argv);

    //3. redirect output
    var eIO = engine.Runtime.IO;

    var errors = new MemoryStream();
    eIO.SetErrorOutput(errors, Encoding.Default);

    var results = new MemoryStream();
    eIO.SetOutput(results, Encoding.Default);

    //4. Execute script
    var scope = engine.CreateScope();

    var lib = new[]
    {
        "C:\\path\\SamplePy\\packages\\IronPython.2.7.9\\lib",
        "C:\\path\\SamplePy\\packages\\IronPython.2.7.9",
    };

    engine.SetSearchPaths(lib);
    engine.ExecuteFile(script, scope);
    //source.Execute(scope);

    //5. Display output
    string str(byte[] x1) => Encoding.Default.GetString(x1);

    Console.WriteLine("Errrors");
    Console.WriteLine(str(errors.ToArray()));
    Console.WriteLine();
    Console.WriteLine("Results");
    Console.WriteLine(str(results.ToArray()));
}

Я получаю сообщение об ошибке, что модуль не установлен. Поэтому я открыл папку пакетов, в которой находится IronPython, в моем решении для кода, и попытался установить модули с помощью pip, но командная строка всегда сообщает, что команда pip не распознана.

Я попробовал следующее: откройте командную строку, измените каталог на мои файлы кода, содержащие пакеты IronPython, и используйте команды pip, но это не удалось. Я также попробовал команду «python -m pip install pillow», но она тоже не удалась.

Поэтому я должен установить IronPython отдельно от "ironpython.net/download", а затем установить необходимые модули на путь, где был сохранен IronPython, и затем использовать эти ссылки внутри моего кода ?. Будет ли этот подход работать нормально?.

Любые предложения, документация или кодовый подход были бы хороши.

Заранее спасибо !!! ..

...