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

c'est pas dans le .z
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)
C'est pas le terminal le "fautif" pour ça.... c'est ton code hein...
Je fais pas de python moi, j'sais pas.

Mais comme tu peux le voir, ça fonctionne très bien quand tu le lances de cette manière.
Pas besoin de modifier le .zprofile @sinbad21 . ça fonctionne, c'est le code dans Ortho4XP.py qui ne fonctionne pas (ou qu'il manque des dépendances...)
rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP
rl@Ypsos Ortho4XP % python3 /Users/rl/Ortho4XP/Ortho4XP.py
 
sinbad21
heu il n'y a rien dans nano
a1.png




pour edenpulse
J'utilise Ortho 4XP depuis 2011 en mode bash

il ne manque pas de module il se lance avec automator sans problème et je peux faire le travail dans l'interface Ortho qui est ouverte.

Ortho se lance sans problème et ile terminal ne recherche pas de modules manquant à condition que le terminal est en mode shell bash

sur windows et linux il fonctionnerait selon les personnes parfaitement en mode shell zsh

le problème se trouve sur ma machine et système mac lorsque je passe en mode zsh
C'est pourquoi je suis venu solliciter votre assistance.
Une fois cette question de zsh de réglé je ne toucherais plus au terminal .
Désolé mais je suis entre vos mains .

 
Il y a rien dans nano, ça veut juste dire que le fichier est vide, tu fais un copier coller des lignes indiquées plus haut, tu sauvegardes, tu fermes ta session et tu la réouvres pour que ce soit pris en compte, et tu vérifies que le PATH de Python11 apparaît bien quand tu fais un echo $PATH (a priori au début).

Si c'est le cas la commande python3.11.... ne te renverra plus un command not found.
 
merci

désolé toujours rien
J'ai réalisé l'opération tant nano ~/.zprofile en mode zsh que dans le mode bash


puis aussi dnas les 2 modes

# Setting PATH for Python 3.11
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH
 
J'ai utilisé Funter pour rechercher le fichier .zprofile y compris l'invisible
j'espère que cela peut vous aider
déjà j'ai plusieurs installation de z profile
a1.png

Capture d’écran 2.jpg

Capture d’écran 3.jpg

a3.png

a4.png

si j'ouvre avec TextEdit les deux premiers


# System-wide profile for interactive zsh(1) login shells.

# Setup user specific overrides for this in ~/.zprofile. See zshbuiltins(1)
# and zshoptions(1) for more details.

if [ -x /usr/libexec/path_helper ]; then
eval /usr/libexec/path_helper -s
fi
-------

les invisibles dans rl Pareil pour les deux derniers
# Setting PATH for Python 3.11
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH
 
Pourquoi l’avoir fait en bash, puisqu’en bash ça marche ? J’ai peur que ce ne soit pas clair dans ton esprit.

Je reprends les explications. Quand tu lances une commande dans Terminal, il va chercher la commande dans les bibliothèques d’exécutables par défaut. Le problème est que Python ne figure pas dans ces bibliothèques, il est planqué dans le dossier Frameworks de la bibliothèque qui est à la racine de ton disque dur. Ça le Shell ne peut pas le savoir, c’est pourquoi quand tu installes Python celui-ci ajoute son PATH (son chemin en français), dans le fichier profile du Shell.

Si tu fais un cat du fichier .bash_profile, tu verras que les lignes que je t’ai fait rajouter y sont. Ce n’est pas toi qui les y a mises, c’est Python à l’installation.

Du coup mon nano était destiné à faire la même chose dans le fichier profile du Shell zsh, le fichier .zprofile.

Fais un cat du fichier .bash_profile, puis du fichier .zprofile, qu’on voie où on en est.
 
  • J’aime
Réactions: edenpulse
2 réponses
Il me semblait qu'il ne s'est rien passé dans le mode zsh car j'ai toujours ce même message d'erreur.

Aussi je me suis dis qu'il fallait se rendre en mode bash pour lui demander de déplacer de son bprofile ce que demande ta ligne de commande dans zprofile.`

Désolé mais j'apprend pendant que tu me demandes de réaliser telle ou telle procédure.

Promis je ne vais plus rien tenter d'autre, plus d'initiative.

( Ortho fonctionne malgré cette procédure en mode bash donc de ce coté c'est bon.)

désolé mais faire un Cat c'est quoi ( à presque 70 balais on ne fait plus de course de vitesse mais d'endurance :rolleyes: :cool:

comme j'ai les fichiers en double. Il ne faudrait pas déjà commenecer à en supprimer l'un des deux et lequel?
les d2 premiers sont dans système et private
les deux derniers avec le point sont invisibles et dans user
Image supprimée à la demande du posteur (données personelles affichées en clair)
 
Dernière édition par un modérateur:
C'est la commande cat, qui fait un display du contenu du fichier. C'est la même chose que nano sauf que là on ne peut rien modifier.
Bloc de code:
cat ~/.bash_profile
ensuite tu fais :
Bloc de code:
cat ~/.zprofile
 
merci

résultat (on peut tout virer pour ne conserver que ce qui est ncessaire au système mac et à Ortho)

rl@Ypsos ~ % cat ~/.bash_profile

# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH

# Setting PATH for Python 3.4
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"
export PATH

# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# Setting PATH for Python 2.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

##
# Your previous /Users/rl/.bash_profile file was backed up as /Users/rl/.bash_profile.macports-saved_2019-02-02_at_23:40:48
##

# MacPorts Installer addition on 2019-02-02_at_23:40:48: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.


# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 2.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

eval "$(/opt/homebrew/bin/brew shellenv)"

eval "$(/opt/homebrew/bin/brew shellenv)"

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

# Setting PATH for Python 3.12
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:${PATH}"
export PATH

# Setting PATH for Python 3.10
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH

# Setting PATH for Python 3.11
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH


rl@Ypsos ~ % cat ~/.zprofile
# Setting PATH for Python 3.11
PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH
 
Voilà, il y a effectivement du ménage à faire dans le .bash_profile, mais c'est facultatif si tu prévois de rester en zsh. Tu peux au moins éliminer les doublons, il suffit de l'éditer avec nano et de supprimer ce qui est en double.

Maintenant on peut voir que ton fichier .zprofile est correct. Si tu n'as pas fermé ta session depuis que tu l'as modifié avec nano, ferme la session ou redémarre le Mac pour que ce soit pris en compte.

Ensuite normalement ça devrait aller mieux quand tu lances :
Bloc de code:
cd /Users/rl/Ortho4XP/ ; python3.11 Ortho4XP.py
 
il m'en veut le bestiau

je ferme le terminal après chaque manipulation
je viens aussi de redémarrer le mac

rl@Ypsos ~ % cd /Users/rl/Ortho4XP ; python3.11 /Users/rl/Ortho4XP/Ortho4XP.py
zsh: command not found: python3.11


ou


rl@Ypsos Ortho4XP % cd /Users/rl/Ortho4XP ; python3.11 Ortho4XP.py
zsh: command not found: python3.11
 
On va y arriver ;). C'est surprenant, cela peut provenir d'une des causes suivantes :

1) Le fichier .zprofile n'est pas pris en compte. Si c'est le cas la commande
Bloc de code:
echo $PATH | grep 3.11
sous zsh ne doit rien renvoyer du tout.

2) python 3.11 n'est pas installé à sa place habituelle. Dans ce cas, si dans le Finder tu fais aller au dossier (menu Aller > Aller au dossier...) :

Bloc de code:
/Library/Frameworks/Python.framework/Versions/

tu ne devrais pas voir le dossier 3.11 dans les résultats.

Es-ce qu'on est dans un des deux cas ?
 
merci
rl @Ypsos ~ % echo $PATH | grep 3.11


/Library/Frameworks/Python.framework/Versions/3.11/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


le finder ne trouve rien avec aller au dossier
Capture d’écran.jpg

Comme j'ai migré plusieurs fois en changeant de mac j'ai des bébé dse ptyhon dans le système.
Or avec Sonoma tout s'installe dans user . ( lors de l'installation voir le fichier PDF j'ai des 'permission denied"

Or la présence dans le système des fichiers zprofile ou on ne peut plus écrire dedans est en double avec celui dans user.
Il semblerait que selon la méthode une fois c'est le résultat qui se trouve dans zprofile du sytème qui s'affiche et une fois celui de user.

Il faudrait peut être virer tout ce qui est python dans le système non?
 
Non, tu ne peux pas modifier les fichiers système depuis Catalina (et heureusement).

Le résultat de ton echo $PATH est correct, par contre quand tu vas au dossier /Library/Frameworks/Python.framework dans le Finder il n'y a rien du tout. Python est donc installé ailleurs.

Qu'as-tu dans le fichier .zshrc ?

Bloc de code:
cat ~/.zshrc
 
C'est pas obligatoirement python3.11 la commande pour lancer des scripts pythons... pas besoin de spécifier le numéro de version normalement

Bloc de code:
which python
Te donnera l'emplacement de l'executable de la commande python

1709226549999.png

Sinon,

Pyenv te permet de gérer plusieurs versions de python en parallèle
comment l'installer : https://formulae.brew.sh/formula/pyenv

Bloc de code:
python -V
Te donnera la version de python utilisée

1709226581252.png

Tout est très bien expliqué ici par ailleurs :
 
  • J’aime
Réactions: sinbad21
@edenpulse Très pratique la commande which python. Chez moi ça donne command not found parce qu'il doit me manquer un alias quelque part, par contre la commande which python3 marche.

Bloc de code:
which python3
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3
 
Non là le message dit simplement que /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 n'existe pas. Par contre /usr/bin/python3 semble exister (mais quelle version de python3 ?).

Il y aura juste à modifier le fichier .zprofile pour mettre le bon chemin.

Avant de le faire essaie de lancer la commande suivante :
Bloc de code:
cd /Users/rl/Ortho4XP/ ; /usr/bin/python3 Ortho4XP.py

Si la commande marche, on pourra modifier le .zprofile. Si ça ne marche pas, il faudra repasser en bash pour lancer la commande which python3 qui nous donnera le chemin du python3 utilisé en bash. C'est important d'utiliser le même chemin en zsh, parce que c'est dans ce python-là que les modules nécessaires au fonctionnement de ton logiciel sont installés.

C'est ça qui est mal foutu avec python, c'est qu'à chaque nouvelle version il faut réinstaller dans la nouvelle version tous les modules qu'on avait installés précédemment, sinon rien ne marche.
 
mode zsh

rl@Ypsos ~ % cd /Users/rrl/Ortho4XP ; rl/bin/python3 Ortho4XP.py
zsh: no such file or directory: /rl/bin/python3


mode bash
Ypsos:~ rl$ cd /Users/rl/Ortho4XP ; /rl/bin/python3 Ortho4XP.py
-bash: /rl/bin/python3: No such file or directory