Sonoma et mac Studio M2 max: Installer proprement python version shell zsh

Télémac

Membre expert
Club iGen
1 Février 2001
2 902
31
xplanepilotecontrole.nexgate.ch
Bonjour



J'ai une application en py qui ne fonctionne pas en shell Accès zsh il manquerait des modules;

En recherchant avec Funter je relève que python est installé un peu partout dans le système et mélangé avec d'anciennes versions de l'époque de python 2.7;l
Certains dans lib du système, d'autres dans lib de usr et d'autres dans homebrew.

supprimer je sais faire dans funter. ( je n'y connais rien en terminal)

Mais comment installer proprement et à quel endroit python 3.12 en version shell zsh proprement?

Merci
 
J'ai refais une installation python 3.12

Il n'y a pas mal de warning

ceci étant après ce nettoyage j'ai lancé en mode shell bash l'application ORTHO 4XP 1.40 qui s'est ouvert si je le lance en 3,11

si je le lance en 3.12 qui est installé n'importe ou = erreur

Ypsos:~ rl$ cd /Users/rl/Ortho4XP ;/Users/rl/Ortho4XP/Ortho4XP.py

No global config file found. Reverting to default values.

Ypsos:Ortho4XP rl$ cd /Users/rl/Ortho4XP ;/Users/rl/Ortho4XP/Ortho4XP.py

env: python3.12: No such file or directory

pdf des modules installés et des warning

merci pour l'aide
 
Bonjour, si tu changes de version de Python il faut d'abord installer dans Python3.12 les modules qui sont dans le fichier requirements.txt.

Bloc de code:
pip3 install -r requirements.txt
 
Merci

Comme expliqué, je ne pratique pas le terminal ni python hors l'application qui l'utilise mais que je lance avec automator.

J'espère que c'est bon comme procédure car le résultat n'est pas au RDV

Ypsos:~ rl$ cd /Users/rl/Ortho4XP ;/Users/rl/Ortho4XP/requirements.txt


-bash: /Users/rl/Ortho4XP/requirements.txt: Permission denied


Et comme ceci ce n'est pas mieux

Ypsos:Ortho4XP rl$ cd /Users/rl/Ortho4XP ;rl$ pip3 install -r requirements.txt


-bash: rl$: command not found


etr comme ceci "not writeable

rl@Ypsos ~ % cd /Users/rl/Ortho4XP ; pip3 install -r/Users/rl/Ortho4XP/requirements.txt


zsh: /usr/local/bin/pip3: bad interpreter: /usr/local/opt/[email protected]/bin/python3.12: no such file or directory


Defaulting to user installation because normal site-packages is not writeable



Collecting certifi==2023.7.22
 
Dernière édition:
Ça a l'air d'être le souk dans tes installations de python. Le mieux serait de virer python3.12 et de le réinstaller avec homebrew.
Le plus simple serait de continuer avec python3.11 puisque ça marche, pourquoi upgrader python si le logiciel ne l'exige pas ?
 
ok on reste en 3.11
Sauf que j'ai un autre problème en 3.11 shell bash cela fonctionne mais pas en shell zsh (comme la 3.12)

pour précision on installe comment en homebrew?

mon application voici ce que j'ai du faire
https://xplane-pilote-controle.eu/tuto_homebrew_python_script_installation.html
Bloc de code:
brew install [email protected]

Sinon si ça marche en bash et pas en zsh, c'est probablement parce que python3.11 n'est pas dans la variable $PATH du shell zsh. Fais en bash un
Bloc de code:
echo $PATH
, puis fais la même commande en zsh. Tu devrais avoir des différences. Liste les deux qu'on regarde.
 
rl@Ypsos Ortho4XP % echo $PATH

mode zsh
/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools



mode bash
Ypsos:~ rl$ echo $PATH


/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools
 
Ok, donc aucune référence à Python dans le PATH de zsh alors que ça pullule dans celui de bash.

Pour info, la variable $PATH sert au shell pour lui indiquer où chercher les programmes. Ça évite de devoir taper le chemin complet du programme à chaque fois. On va donc rajouter un PATH pour Python 11 et 12 dans le shell de zsh :
Bloc de code:
export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin

Normalement les path sont ajoutés automatiquement à l'installation de Python mais comme tu étais en bash quand tu as installé Python, ça les a rajoutés dans le fichier profile de bash, pas de zsh.
 
rl@Ypsos ~ % export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin
rl@Ypsos ~ %


c'est tout ce qu'il a fait pas de message de travail dans le terminal

il fait le faire dans la fenêtre en mode zsh ou en mode bash?
 
En mode zsh. La commande ne renvoie pas de compte rendu, mais elle a fonctionné.
Tu peux toujours vérifier en refaisant un echo $PATH que ces deux bibliothèques ont été rajoutées.

Normalement tu devrais pouvoir maintenant lancer ton application en python3.11 sous zsh. Si tu as toujours python3.12 d'installé, il faudra préciser que tu lances ton appli avec python3.11.

Bloc de code:
python3.11 /Users/rl/Ortho4XP/Ortho4XP.py
 
En mode zsh. La commande ne renvoie pas de compte rendu, mais elle a fonctionné.
Tu peux toujours vérifier en refaisant un echo $PATH que ces deux bibliothèques ont été rajoutées.

Normalement tu devrais pouvoir maintenant lancer ton application en python3.11 sous zsh. Si tu as toujours python3.12 d'installé, il faudra préciser que tu lances ton appli avec python3.11.

Bloc de code:
python3.11 /Users/rl/Ortho4XP/Ortho4XP.py
Merci pour ton aide
Désolé ne fonctionne pas
rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP ;python3.11/Users/rl/Ortho4XP/Ortho4XP.py


zsh: no such file or directory: python3.11/Users/rl/Ortho4XP/Ortho4XP.py




vérification avec echo

/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools
 
Dernière édition:
j'ai relancé requirements.txt

You have mail.

rl@Ypsos ~ % cd /Users/rl/Ortho4XP ;/Users/rl/Ortho4XP/requirements.txt


zsh: permission denied: /Users/rl/Ortho4XP/requirements.txt


j'ai copié les lignes de commande de la procédure d'installation de ce qu j'ai besoin pour mon appli.

lien vers le pdf qui donne pas mal de warning
peut être que cela p est plsu parlant.
PDF Installation python et modules

J'ai l'impression que quelque chose ne m'autorise pas à installer correctement python

Plusieurs versions cohabitent depuis des années suite au changement des mac.

Y aurait il des fichiers trop anciens qui pertuberaient?

question si le système mac sonoma avec le mac studio max n'a pas besosin de python en général , dans ce cas il vaudrait peut être mieux effacer toutes les version depusi 2011 y compris les fichiers invisibles.?

Ensuite me donner la bonne procédure pour installer python 3.11 en mode zsh à partir de zéro

comme précisé je suis nul en terminal , jene l'utilise que pour faire fonctionne l'application Ortho qui de plus se lance avec automator .
 
rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP ;python3.11/Users/rl/Ortho4XP/Ortho4XP.py


zsh: no such file or directory: python3.11/Users/rl/Ortho4XP/Ortho4XP.py
Oui. Normal que ça ne fonctionne pas. Faudrait que les commandes soient bien faites

Tu va dans le dossier où le fichier python est:

cd /Users/rl/Ortho4XP/

Et après tu lance le fichier python avec python:

python3.11 Ortho4XP.py

Lire les erreurs permet de bien souvent les corriger. « No such file or directory » est assez explicite.
 
merci

Désolé ne fonctionne pas en ajoutrant python3.11

rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP

rl@Ypsos Ortho4XP % python3.11/Users/rl/Ortho4XP/Ortho4XP.py

zsh: no such file or directory: python3.11/Users/rl/Ortho4XP/Ortho4XP.py




ou saisi comme ceci pareil
rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP

rl@Ypsos Ortho4XP % python3.11 Ortho4XP.py

zsh: command not found: python3.11


Pour information mais cela vous ne pouviez pas le savoir le fichier Ortho4XP.py précise déjà la version python dans la première ligne

#!/usr/bin/env python3.11
import sys
import os
 
rl@Ypsos Ortho4XP % python3.11/Users/rl/Ortho4XP/Ortho4XP.py
Normal : Parce qu'il n'y a pas d'espace entre la commande "python3.11" et le chemin du fichier à executer

Est-ce que le fichier est bien à cet emplacement? : /Users/rl/Ortho4XP/Ortho4XP.py ?

zsh: command not found: python3.11
Et en utilisant simplement?

Bloc de code:
python Ortho4XP.py
 
merci pour ton aide


précision la même commande en mode bash fonctionne.
Ypsos:~rl$ cd /Users/rl/Ortho4XP ;/Users/rln/Ortho4XP/Ortho4XP.py
No global config file found. Reverting to default values.

le problème est généré uniquement en mode zsh


avec espace entre python 3.11 et user en mode zsh
rl@Ypsos ~ % cd /Users/rl/Ortho4XP
rl@Ypsos Ortho4XP % python3.11 /Users/rl/Ortho4XP/Ortho4XP.py
zsh: command not found: python3.11


juste avec python
rl@Ypsos Ortho4XP % python /Users/rl/Ortho4XP/Ortho4XP.py
zsh: command not found: python


en ajoutant 3 derrière le mot python mon application semble se lancer dans le terminal mais annonce un module manquant à installer mais comment? (brew pip3 skfmm? ou un truc de be gentre ? désolé je suis nul je n'utilise jamais le terminal)
rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP
rl@Ypsos Ortho4XP % python3 /Users/rl/Ortho4XP/Ortho4XP.py
Traceback (most recent call last):
File "/Users/rl/Ortho4XP/Ortho4XP.py", line 9, in <module>
import O4_Imagery_Utils as IMG
File "/Users/rl/Ortho4XP/./src/O4_Imagery_Utils.py", line 2, in <module>
import O4_Mask_Utils as MASK
File "/Users/rl/Ortho4XP/./src/O4_Mask_Utils.py", line 8, in <module>
import skfmm
ModuleNotFoundError: No module named 'skfmm'
rl@Ypsos Ortho4XP %
 
J'ai compris, la commande export path n'a pas fait la modification de façon permanente, et le path de Python3.11 n'est toujours pas dans ton profil zsh. Pour que ce soit permanent, il faudrait ajouter les lignes suivantes dans le fichier invisible .zprofile qui est a la racine de ton dossier utilisateur.

Bloc de code:
# Setting PATH for Python 3.11
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

Est-ce que tu sais utiliser le programme nano dans le Terminal ? C'est assez simple, tu tapes
Bloc de code:
nano ~/.zprofile
, il t'affiche le contenu. Dans nano tu ne peux travailler qu'avec le clavier, la souris est inopérante.

Tu rajoutes à la fin du fichier les lignes mentionnées plus haut, puis tu sauvegardes en faisant ctrl+x, tu confirmes ensuite par Y.