ارتباط سی شارپ و پایتون
آیا در نسخه های جدید ویژوال استودیو امکان ارتباط کد های نوشته شده با پایتون در سی شارپ وجود دارد. به نحوی که قسمتی از کدهای مرتبط به برنامه به زبان پایتون نوشته شود ( از آنجایی که زبان پایتون دارای کتابخانه های قدرتمندی است) و این کد توسط سی شارپ اجرا شود. مثلا سی شارپ داده ها را به پایتون فرستاده کد پایتون را اجرا کرده و نتیجه را از پایتون بگیرد؟ نسخه پاینون 3.4 به بالا
2 پاسخ
سلام، وقت بخیر
دو راهکار برای این موضوع وجود داره، یکی اینکه از IronPython استفاده کنید و داخل سی شارپ اسکریپت مورد نظرتون رو اجرا کنید. برای اینکار از قابلیت های Dynamic سی شارپ باید استفاده کنید. البته به این موضوع هم باید توجه کنید که IronPython مدت زیادی هست به روز رسانی نشده!
راهکار دوم اینه که شما بوسیله Process اسکریپت مورد نظرتون رو اجرا کنید و خروجی که در محیط Command تولید میشه رو استفاده کنید:
ProcessStartInfo start = new ProcessStartInfo(); start.FileName = "my/full/path/to/python.exe"; start.Arguments = string.Format("{0} {1}", cmd, args); start.UseShellExecute = false; start.RedirectStandardOutput = true; using(Process process = Process.Start(start)) { using(StreamReader reader = process.StandardOutput) { string result = reader.ReadToEnd(); Console.Write(result); } }
خیلی ممنون. چون IronPython بر طبق نسخه 2.7 ساخته شده و نسخه 3.6 هنوز به روز رسانی ندارد. روش دوم و استفاده از پروسس فعلا کار آمد تره.