Dans un environnement où Macports a installé plusieurs versions de Python et fait diverses choses, lorsque vous appuyez par inadvertance sur ʻeasy_install`, le easy_install correspondant à la version Python sélectionnée avec le port select est automatiquement sélectionné Je voulais qu'il fonctionne, alors j'ai écrit un script wrapper. (Le japonais est trop long)
Il existe différentes méthodes de changement de version qui sont le chaos pour les débutants en Python ...
#!/bin/bash
###
### Macports easy_install wrapper
### Created by H.Ishiura 2016-12-17
###
SELECT=`port select --show python`
if [[ "$SELECT" =~ ^The\ currently\ selected\ version\ for\ \'python\'\ is\ \'python(.)(.)\'\.$ ]]; then
MAJOR_VERSION=${BASH_REMATCH[1]}
MINOR_VERSION=${BASH_REMATCH[2]}
COMMAND="easy_install-${MAJOR_VERSION}.${MINOR_VERSION}"
else
COMMAND="/usr/bin/easy_install"
fi
${COMMAND} $@
Placez ce script avec l'autorisation d'exécution dans un répertoire recherché de préférence à / usr / bin et / opt / local / bin. Voici un exemple d'installation (l'opération n'a pas été confirmée)
$ sudo port install python27
$ sudo port install py27-readline
$ sudo port install py27-setuptools
$ sudo port install py27-pip
$ sudo port install python35
$ sudo port install py35-readline
$ sudo port install py35-setuptools
$ sudo port install py35-pip
$ sudo port select --set python python35
$ sudo port select --set pip pip35
$ curl https://gist.githubusercontent.com/ura14h/6742ae07036dcf74b30de5d2ff8931a9/raw/f30e3887421e93a26df5553eb5c425cb7d7407e2/easy_install -o easy_install_wrapper
$ mkdir ~/bin/
$ mv easy_install_wrapper ~/bin/easy_install
$ chmod 755 ~/bin/easy_install
$ export PATH="${HOME}/bin:${PATH}"
Puis appuyez sur la commande normalement.
$ easy_install --version
setuptools 30.3.0 from /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (Python 3.5)
Au fait, lorsque vous spécifiez la version et que vous l'exécutez, cela ressemble à ceci.
$ /usr/bin/easy_install --version
setuptools 18.5 from /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (Python 2.7)
$
$ easy_install-2.7 --version
setuptools 30.3.0 from /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (Python 2.7)
$
$ easy_install-3.5 --version
setuptools 30.3.0 from /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (Python 3.5)
La vérité est que j'aimerais pouvoir faire quelque chose comme port select --set easy_install easy_install-3.5
... Non, dois-je quitter Macports en premier lieu?
Recommended Posts