Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Python Skript/ Module in C# integrieren
Bügeleisen
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Python Skript/ Module in C# integrieren

beantworten | zitieren | melden

Hallo liebe Community,
ich muss in Zuge meines Studiums ein bestehendes Python Skript in C# implementieren und dort eine GUI erstellen. Ich bin noch relativ neu auf diesem Gebiet, weswegen ich etwas unbeholfen bin.
Durch Recherche bin ich auf Ironpython gekommen. Mein Plan ist es dort die ganzen .py Module zu implementieren, um dann so auf diese zugreifen zu können.
Wenn ich nun aber anfange, lässt sich mit dem Befehl "import" nichts importieren.
Es kommt immer die Fehlermeldung: unresolved import.
Wie löse ich das Problem? Ich möchte nämlich umgehen, dass ich jedes Modul nochmal extra in C# Programmieren muss, da das ein extremer Aufwand wäre.
Ich bin für Hinweise und Tipps jeder Art sehr dankbar.
Bitte entschuldigt, falls ich dieses Thema hier in das falsche Forum geposted habe.
Liebe Grüße
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

Hi,

was für einen Impor? In C# nimmt man using :/

Naja - grundlegend hast du mindestens 2 Möglichkeiten soweit ich mit einer schnellen Suche fnde:
a) Einfach per Shell ausführen (halte ich nicht unbedingt für verkehrt)
b) IronPython verwende - aber normal kommt da denke ich kein import (zumindest im C# vor)

Schaust dir vll mal am besten folgenden Thread an:
https://stackoverflow.com/questions/11779143/how-do-i-run-a-python-script-from-c

LG

PS: Wenn man dich zwingt ein externes Script auszuführen - würde ich persönlich wenn ich keine Rückmeldung für mein Programm brauche - immer per Shell bzw. Cmd ausführen. Ist schlicht sehr simpel auf diese Art.
private Nachricht | Beiträge des Benutzers
Bügeleisen
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für die schnelle Antwort,
ich lese mich in die Shell thematik mal ein und schau ob ich es so zum laufen bringe.
An sich soll mein Programm CAD Daten von Bauteilen auswerten. Dazu hab ich in Python ein Programm mit einer GUI die mir mit 10 Modulen dann diese Daten generiert.
Ich muss also später in meinem C# Projekt die Daten einlesen, sie diesen .py Modulen übergeben und dann die Ergebnisse wieder in C# darstellen. Um das nochmal etwas genauer zu formulieren. Die GUI in dem Python Projekt ist nämlich sehr unübersichtlich und soll mit C# optimiert werden.
Trifft der Lösungsansatz dann auch hierauf zu?
Liebe Grüße
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

Hi,

naja - ein Shell-Aufruf startet im Endeffekt eine Art Kommandozeile für ein anderes Programm.

Wenn das Python-Programm einen entsprechenden CLI-Aufruf schafft - dann schafft das auch ein Shell-Aufruf.

Wenn das Ganze sich allerdings nur über die GUI anstoßen lässt - wird das mit der Shell nichts.

Um allerdings ehrlich zu sein: Das klingt nicht nach einer Aufgabe aus dem Studium - sondern eher nach einem Nebenjob mit lausiger Aufgabenstellung... Falls nicht würde ich eher erwarten, dass man dich auffordert alles in C# zu implementieren. Dann allerdings CAD in's Spiel zu bringen...

LG
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Taipi88 am .
private Nachricht | Beiträge des Benutzers
JimStark
myCSharp.de - Member

Avatar #dOpLzh7hN1az1g0eGRc0.jpg


Dabei seit:
Beiträge: 297

beantworten | zitieren | melden

Man könnte das ganze auch über gRPC verbinden. Dann hätte man eine einheitliche Schnittstelle. Könnte aber sein dass das für euch etwas übertrieben ist, da ich denke dass dein Projekt was zusammengeschustertes für einen Arbeitsplatz ist
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JimStark am .
private Nachricht | Beiträge des Benutzers
Bügeleisen
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Ich muss das tatsächlich für die Uni machen, vielleicht drücke ich mich einfach schlecht aus.
Ich habe ein fertiges Programm in Python und möchte eben umgehen, dass ich alles nochmal von neu in C# schreiben muss. Deswegen wäre es praktisch, wenn ich die python Module irgendwie integrieren könnte. Das ist die Intension von dem Ganzen. Ich möchte nämlich in meinem Neuen Programm dann meine selbst geschriebenen Module mit den alten aus Python ergänzen um das ganze zu Optimieren.
private Nachricht | Beiträge des Benutzers
Yeats
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Österreich

beantworten | zitieren | melden

Hallo,

Mittels IronPython kannst du dir in einem C# Programm eine Python ScriptEngine erstellen wo du dann entweder ein Python Skript, oder ein Python File von einem Ordner laden könntest.

Sowas könnte so aussehen:


using System;

using IronPython.Hosting;


namespace Test
{
    public class Program
    {
        public static void Main (string[] args)
        {
            //var engine = Python.CreateEngine();
            //var scope = engine.ExecuteFile("hello.py");

            var engine = Python.CreateEngine();
            engine.Execute("print \"Hello World from Python\"");
            
            Console.ReadKey();
        }
    }
}

Ob du damit ein Python 3.* ansprechen kannst, weiß ich allerdings nicht.

Ansonsten natürlich auch die Ausführung über CLI wie Taipi88 schon beschrieben hat.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Yeats am .
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 272

beantworten | zitieren | melden

Evtl. könnte Pyjion auch einen Blick wert sein: Link zum Blogpost
Goalkicker.com
DNC Magazine for .NET Developers,
.NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray ;-)
private Nachricht | Beiträge des Benutzers