So bringen Sie CommandLineTools dazu, eine andere Version von Python zu verwenden
Posted: 20 Jan 2025, 16:07
Ich verwende diesen C#-Code, um ein Python-Skript aufzurufen.
Wenn ich mein Programm ausführe, erhalte ich einen OSError und bemerke, dass der Python-Interpreter auf hier zeigt:
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework /Versions/3.9/lib/python3.9/runpy.py
Dieser Fehler tritt auf, weil das aufgerufene spezifische Skript ausgeführt wird python3.11.
Meine Frage ist, gibt es eine Möglichkeit, die Version für CommandLineTools richtig zu ändern, um 3.11 zu verwenden? Technisch gesehen habe ich eine Lösung, bei der ich einfach den Ordner 3.11 in den Ordner ../../Versions kopiere und es funktioniert. Für mich ist das keine gute Lösung, da ich das für mehrere Systeme machen müsste. Gibt es einen anderen Weg, dies zu umgehen? Und warum verwendet System.Diagnostics nicht den Standard-Python-Interpreter des Systems?
BEARBEITEN: Ich habe erfahren, dass /Library/Developer/CommandLineTools von Xcode stammt. Aber wie bringe ich mein C#-Programm dazu, usr/bin/python3 anstelle von ../CommandLineTools
Code: Select all
Process.StartInfo = new ProcessStartInfo()
{
FileName = @"/usr/bin/python3",
Arguments = $@"{cmd} {args}", // cmd is the python script path
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = false
};
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework /Versions/3.9/lib/python3.9/runpy.py
Dieser Fehler tritt auf, weil das aufgerufene spezifische Skript ausgeführt wird python3.11.
Meine Frage ist, gibt es eine Möglichkeit, die Version für CommandLineTools richtig zu ändern, um 3.11 zu verwenden? Technisch gesehen habe ich eine Lösung, bei der ich einfach den Ordner 3.11 in den Ordner ../../Versions kopiere und es funktioniert. Für mich ist das keine gute Lösung, da ich das für mehrere Systeme machen müsste. Gibt es einen anderen Weg, dies zu umgehen? Und warum verwendet System.Diagnostics nicht den Standard-Python-Interpreter des Systems?
BEARBEITEN: Ich habe erfahren, dass /Library/Developer/CommandLineTools von Xcode stammt. Aber wie bringe ich mein C#-Programm dazu, usr/bin/python3 anstelle von ../CommandLineTools