System nutzt falsche Python version

H

harvey186

Mitglied
Thread Starter
Dabei seit
21.02.2017
Beiträge
8
Reaktionspunkte
0
Hi,
Ich habe diverse python 3.5 scripte erstellt. Per Terminal command python3 script.py läuft alles perfekt.
Versuche ich das nun per shell scrip oder per cron oder irgendeinem anderen automator Prozess aufzurufen, bekomme ich Fehler, die darauf hinweisen, dass nicht python3 sondern python2.7 genutzt wird.
Egal ob ich den Pfad
/Users/harvey/anaconda/bin/python3
mit vorgebe oder nicht.

So sieht es z.B. in der cron aus
PATH=/Users/harvey/anaconda/bin/python3
1 * * * * /Users/harvey/PycharmProjects/3_5_pgm/3woerter.py

Wie kann ich OS X dazu überreden mein python3 zu nehmen und nicht sein python 2.7 ??

Danke
Harvey
 
was hast denn als shebang im .py script oben stehen?
 
Erst hatte ich dort stehen
#!/Library/Frameworks/Python.framework/Versions/3.5/bin/
wegen der Problem habe ich es auf
#!/Users/harvey/anaconda/bin/python3
geändert
 
Erst hatte ich dort stehen
#!/Library/Frameworks/Python.framework/Versions/3.5/bin/
wegen der Problem habe ich es auf
#!/Users/harvey/anaconda/bin/python3
geändert
wie ich gerade im output sehe, wird nun doch alles aus der anaconda library genommen. Trotzdem kommt es zu dem 2.7ner Fehler
(UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position 124: ordinal not in range(128))

Seltsam, seltsam
 
Ja, ich weiß, da hatte ich bereits nachgelesen, aber es hatte keinen erfolg gebracht. Deshalb habe ich ein shell script erstellt und es versucht. Auch ohne Erfolg. Jetzt versuche gerade per Platypus eine app zu erstellen und dann auszuführen. Aber same error.
Ich kapier das eifach nicht. im terminal alles gut, alles andere geht nicht.
 
du musst halt die besonderheiten bei cron beachten.
was ist denn mit einem launchd job?
 
hab ich probiert, aber sorry, das tool versteht keiner so richtig. Ich weiß nicht, was sich Apple dabei gedacht hat.
Wie gesagt, ich hab's auch mit dem automator und mit einem Shell script probiert. Auch bei dem Shell script: sh scipt.sh läuft. Aufruf per Automator: Fehlermeldung wegen asccii
 
Alle klar, danke für den Tip. Nun läuft cron bei mir mit diesem Befehlen:
PATH=/Users/harvey/anaconda/bin/python3
LC_CTYPE="de_DE.UTF-8"
1 * * * * LANG=de_DE.UTF-8 /Users/harvey/anaconda/bin/python3 /Users/harvey/PycharmProjects/3_5_pgm/3woerter.py

wobei mir noch nicht klar ist, warum alle Stunde der Job läuft. Gemäß Einstellung sollte er eigentlich jede Minute laufen.
 
du hast das andere thema doch gelesen
1 * * * * ist in jeder stunde eine minute also 0:01 1:01 usw
*/1 * * * * ist jede minute
 
  • Gefällt mir
Reaktionen: harvey186
Ich hatte für dieses Problem mal ein Script geschrieben.
Code:
display dialog "Change current Pyrhon to 2.6?"
do shell script "rm /System/Library/Frameworks/Python.framework/Versions/Current ; ln -s /System/Library/Frameworks/Python.framework/Versions/2.6 /System/Library/Frameworks/Python.framework/Versions/Current ; rm /usr/bin/pydoc ; ln -s /System/Library/Frameworks/Python.framework/Versions/2.6/bin/pydoc /usr/bin/pydoc ; rm /usr/bin/python ; ln -s /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python /usr/bin/python ; rm /usr/bin/pythonw ; ln -s /System/Library/Frameworks/Python.framework/Versions/2.6/bin/pythonw /usr/bin/pythonw ; rm /usr/bin/python-config ; ln -s /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python-config /usr/bin/python-config" with administrator privileges

Schau es mal an. Wahrscheinlich funktioniert es wenn man alle 2.6 mit der von dir gewünschten ersetzt. Ein Problem das ich allerdings beim Updater festgestellt habe (wenn man den von der Python Webseite runterladt) ... 1. es wird am falschen Ort installiert. 2. Der Ordner "Extras" ist nicht dabei und muss von der älteren Version in den Ordner der neuen Version kopiert werden.
 
  • Gefällt mir
Reaktionen: harvey186
Danke, das mach ich die tage mal, Im Moment klappt der cron Aufruf durch die LANG=de_DE.UTF-8 Geschichte.
 
Zurück
Oben Unten