IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> exécuter script python depuis applescript
Options
Thy06
posté 23 Oct 2013, 00:43
Message #1


Nouveau Membre


Groupe : Membres
Messages : 7
Inscrit : 10 Oct 2009
Membre no 143 575



Salut à tous,

Comment exécuter un script python depuis applescript du type :
Code
do shell script "python chemin/fichier.py"

mais ça plante python !

ou mieux encore un applescript intégrant le script python en entier sans appeler un fichier.py

voilà, si vous avez une idée, merci
Go to the top of the page
 
+Quote Post
audionuma
posté 23 Oct 2013, 09:55
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 031
Inscrit : 27 Apr 2004
Membre no 18 176



Bonjour,
Code
do shell script "python chemin/fichier.py"

fonctionne sans problème chez moi.
Est-ce que ton script fonctionne déjà en direct (depuis le terminal) ?
Code
python chemin/fichier.py

et que donne
Code
which python

ainsi que
Code
python -V


--------------------
Membre du club des AIPBP (Anciens Inscrits Pas Beaucoup de Posts) Voir la liste
Futur ex-macbidouilleur, sous Dell / Ubuntu depuis 2021 !
Go to the top of the page
 
+Quote Post
Thy06
posté 23 Oct 2013, 11:24
Message #3


Nouveau Membre


Groupe : Membres
Messages : 7
Inscrit : 10 Oct 2009
Membre no 143 575



Salut audionuma et merci

do shell script "python chemin/fichier.py"
plante python, applescript resultat :
error "Fatal Python error: PyThreadState_Get: no current thread" number 1006

python chemin/fichier.py
marche bien depuis terminal


which python
renvoie :
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

python -V
renvoie :
Python 2.7.5

je te joins le début du rapport de plantage (signaler à Apple...) :
Process: Python [1526]
Path: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Identifier: Python
Version: 2.7.2 (2.7.2)
Code Type: X86-64 (Native)
Parent Process: AppleScript Editor [1333]
User ID: 501

PlugIn Path: /Library/Frameworks/Python.framework/Versions/2.7/Python
PlugIn Identifier: org.python.python
PlugIn Version: 2.7.5, [c] 2004-2013 Python Software Foundation. (2.7.5)

Date/Time: 2013-10-23 12:15:30.830 +0200
OS Version: Mac OS X 10.8.5 (12F45)
Report Version: 10


Sinon, je viens de m'apercevoir que ça plante seulement lorsque je lance un .py avec :

from pymaxwell import *
(un module de Maxwell render, rendu 3D)
mais curieusement ça plante depuis applescript (do shell script), mais ça fonctionne depuis terminal
Go to the top of the page
 
+Quote Post
Akirami
posté 23 Oct 2013, 11:31
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 944
Inscrit : 9 Apr 2010
Membre no 152 689



Salut,

En fait, il y 2 versions de python installé sur OS X, les 2 sont 2.7.5 mais une est 32 bit et l'autre 64.
Suivant la lib que tu utilise (Maxwell), il est possible qu'elle n'utilise que l'une ou l'autre de ces infrastructures.

Tu peux le voir au terminal :

Code
file `which python`


Et Il faudrait que tu saches quelle version ta lib demande.

Edit, chez moi :

Code
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 2 architectures
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture ppc):    Mach-O executable ppc
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386):    Mach-O executable i386


Mais normalement tu dois avoir aussi une x86_64 que j'ai du virer il me semble.

Ce message a été modifié par Akirami - 23 Oct 2013, 11:35.


--------------------
Z77M D3H - Céléron G870 LGA 1155 - DDR3 16 Go - NVidia GT 640 2 Go
Z97P D3 - i5 4460 LGA 1150 - DDR3 12 Go - NVidia GT 740 2 Go
Z390 Designare - i5 9400 - DDR4 2133 Mhz - Sapphire Pulse 5500 XT 8 G0
Go to the top of the page
 
+Quote Post
Thy06
posté 23 Oct 2013, 12:11
Message #5


Nouveau Membre


Groupe : Membres
Messages : 7
Inscrit : 10 Oct 2009
Membre no 143 575



Salut Akirami et merci

Code
file `which python`
renvoie
Code
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 2 architectures
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386):    Mach-O executable i386
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture x86_64):    Mach-O 64-bit executable x86_64


Je ne sais pas si ça peut être une question de 32 ou 64 bits. Mais c'est curieux que ça fonctionne depuis le terminal et pas depuis Applescript !

Citation
Et Il faudrait que tu saches quelle version ta lib demande.

comment je peux faire pour le savoir ?
Go to the top of the page
 
+Quote Post
Akirami
posté 23 Oct 2013, 12:44
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 944
Inscrit : 9 Apr 2010
Membre no 152 689



Citation (Thy06 @ 23 Oct 2013, 13:11) *
Je ne sais pas si ça peut être une question de 32 ou 64 bits. Mais c'est curieux que ça fonctionne depuis le terminal et pas depuis Applescript !

Citation
Et Il faudrait que tu saches quelle version ta lib demande.

comment je peux faire pour le savoir ?


D'après ce que je viens de lire, pymaxwell64 est la version 64 bit, pymaxwell est la version 32 bits, celle que tu as installé je suppose.
Aussi dans ton rapport d'erreur, Applescript lance la version X86_64 de python, ça ne pourra pas fonctionner.

Il faut modifier le Path de python, je sais le faire avec des environnements virtuels mais pas avec Applescript ou Automator.

Un truc simple à faire serait peut être d’installer la version PPC/i386 de python et de linker cette version dans ton Applescript (elle s'installera dans les applications)








--------------------
Z77M D3H - Céléron G870 LGA 1155 - DDR3 16 Go - NVidia GT 640 2 Go
Z97P D3 - i5 4460 LGA 1150 - DDR3 12 Go - NVidia GT 740 2 Go
Z390 Designare - i5 9400 - DDR4 2133 Mhz - Sapphire Pulse 5500 XT 8 G0
Go to the top of the page
 
+Quote Post
Thy06
posté 23 Oct 2013, 17:23
Message #7


Nouveau Membre


Groupe : Membres
Messages : 7
Inscrit : 10 Oct 2009
Membre no 143 575



Citation (Akirami @ 23 Oct 2013, 13:44) *
D'après ce que je viens de lire, pymaxwell64 est la version 64 bit, pymaxwell est la version 32 bits, celle que tu as installé je suppose.

je suppose que tu as trouvé pymaxwell64 ici, ce n'est pas celui-ci. Le mien n'a rien à voir avec Blender. J'ai 4 versions livrées avec Maxwell Render (pour python 2.6-32 bits, 2.7-64 bits, 3.1-32 bits et 3.2-64 bits), j'ai installé la 2.7 64 bits.

du nouveau

Code
echo $PATH
depuis le terminal renvoie :
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Code
do shell script "echo $PATH"
depuis applescript renvoie :
/usr/bin:/bin:/usr/sbin:/sbin

on voit clairement que Applescript ne trouve pas les chemins vers python ! pourquoi ???

PS: Python est installé avec le systeme sur mac, mais j'ai installé aussi la version 2.7.5 (la plus récente en 2.7)

Ce message a été modifié par Thy06 - 23 Oct 2013, 17:57.
Go to the top of the page
 
+Quote Post
Akirami
posté 23 Oct 2013, 18:49
Message #8


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 944
Inscrit : 9 Apr 2010
Membre no 152 689



Une fois c'est exécuter par usr/bin/local, une autre fois en usr/local/bin d'où l’intérêt de créer des environnements virtuels pour python sur OS X.
Le problème est que le terminal t'envoie sur usr/local/bin qui lancera la version 64 bit.

Si tu regardes dans usr/bin/local, tu trouveras tous les alias des versions de python installées qui mènent vers /Library/Frameworks/Python.framework/Versions/2.7/bin/

Ici, j'ai bien une version /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-32, soit en 32 bit et une 2.7 normal qui est la 64 bit.

Le plus simple restant d'installer la version PPC/i386 de python, elle s'installera dans le dossier application indépendamment des autres et il suffira de linker le python launcher dans Applescript (il sera installé avec).
Je le vois comme cela mais je suis loin d'être expert en Applescript.

Ce message a été modifié par Akirami - 23 Oct 2013, 18:54.


--------------------
Z77M D3H - Céléron G870 LGA 1155 - DDR3 16 Go - NVidia GT 640 2 Go
Z97P D3 - i5 4460 LGA 1150 - DDR3 12 Go - NVidia GT 740 2 Go
Z390 Designare - i5 9400 - DDR4 2133 Mhz - Sapphire Pulse 5500 XT 8 G0
Go to the top of the page
 
+Quote Post
Thy06
posté 24 Oct 2013, 12:45
Message #9


Nouveau Membre


Groupe : Membres
Messages : 7
Inscrit : 10 Oct 2009
Membre no 143 575



Tout est résolu
c'était un conflit entre la version du système python 2.7.2 (installée par défaut) et la version 2.7.5 que j'ai installée (et n'aurais pas dû). Le module pymaxwell depuis applescript s'emmêlait les pinceaux et plantait.
J'ai donc désinstallé la 2.7.5, supprimé des fichiers, modifié le $PATH (fichier ".bash_profile" manuellement avec Textedit)
et tout va beaucoup mieux maintenant.

Code
do shell script "python chemin/fichier.py"
fonctionne

et j'ai trouvé aussi comment intégrer directement le code python dans l'applescript :
Code
do shell script "python <<EOF
-- script python ici
EOF"


merci donc à audionuma et Akirami
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 20th April 2024 - 13:18