Как я могу писать, используя библиотеки python с ironpython в .NET?

#python #c# #.net #ironpython

Вопрос:

Я пишу несколько строк кода python в своем приложении .NET, используя IronPython, для работы с CSV-файлами. Я использую библиотеку CSV pythons для этой цели, но она не работает. Библиотека не импортируется в IronPython.

Вот пример моего кода на python:

 import csv

with open("infile.dat") as infile, open("outfile.csv", "w") as outfile:
    csv_writer = csv.writer(outfile)
    prev = ''
    csv_writer.writerow(['ID', 'PARENT_ID'])
    for line in infile.read().splitlines():
        csv_writer.writerow([line, prev])
        prev = line
 

Вот мой код на c# :

 using IronPython.Hosting;
using System;
using System.IO;
using System.Text.RegularExpressions;

namespace DatFileReader
{
    class Program
    {
        static void Main(string[] args)
        {
            var py = Python.CreateEngine();
            try
            {
                py.ExecuteFile("D://myPy.py");
            }
            catch
            {

            }
        }
    }
}

 

Ответ №1:

Вам нужно передать путь к стандартной библиотеке IronPython вашему движку, чтобы он заработал.

Так что это должно сработать, если вы установили IronPython вручную на свой компьютер:

 ICollection<string> searchPaths = engine.GetSearchPaths();
searchPaths.Add("C:\Path\To\IronPython\StandardLib");
py.SetSearchPaths(searchPaths);
 

Так что, если вы исправите путь к стандартной библиотеке, это должно сработать.

Следующая ссылка должна помочь вам импортировать и использовать стандартную библиотеку IronPython поверх менеджера пакетов NuGet:

https://www.needfulsoftware.com/IronPython/IronPythonCS2