Ich mache eine Menge Python-Entwicklung und habe auch gerade das Betriebssystem auf Mountain Lion aktualisiert.
Ich hatte die ursprünglichen Python-Versionen mit Snow Leopard unter Verwendung der GUI von Python.org ersetzt und dann Links in /usr/bin hinzugefügt:
lrwxr-xr-x 1 root admin 71 Oct 22 18:12 python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Also habe ich jetzt, was ich denke, alle Python-Versionen, die Teil von OSX 10.8.5 (2.5, 2.6, 2.7) sind, in:
/System/Library/Frameworks/Python.framework/Versions/
und verlinkt von/usr/bin
Und AUCH die, die ich mit der GUI installiert habe:
/Library/Frameworks/Python.framework/Versions/
Aber ich plane, die Versionen zu verwenden, die ich mit installiere fink
, was ein Portbaum ist, der dem ähnlich ist, macports
der sich befindet/befinden wird in:
/sw/bin
PATH
Also habe ich die Exporte auskommentiert ~/.bash_profile
, die auf die ausführbaren Nicht-Fink-Dateien verweisen:
#PATH="/usr/local/bin:/usr/local/sbin:/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
#export PATH
#PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
#export PATH
Und ergänzt:
# for Fink:
export PATH=$PATH:/sw/bin
. /sw/bin/init.sh
Ich verstehe das Shell-Skripting noch nicht ganz, aber init.sh
initialisiert fink, denke ich, hauptsächlich durch Hinzufügen von Elementen zu $PATH und anderen Umgebungsvariablen.
homebrew
Zuvor habe ich verschiedene Pakete mit und verschiedene GUIs installiert macports
und hoffe, diesmal eine verständlichere Umgebung zu haben.
Im Moment muss ich installieren postgreSQL
und eine Reihe von python modules
einschließlich pip
, virtualenv
, virtualenvironmentwrapper
, psycopg
.
Es sieht so aus, als ob die easy_install
ausführbare Datei (binäre ausführbare Datei?) (neben easy_install-2.5, 2.6 und 2.7) in /usr/bin/
.
Also meine Fragen sind:
Gibt es einen Grund, mehr als eine Kopie jeder Version von Python zu haben?
Funktionieren Python-abhängige Anwendungen, solange es einen Link zu /usr/bin/
einer funktionierenden, ausführbaren Python-Bibliothek gibt und der Speicherort der ausführbaren Python-Datei in der $PATH
?
Gibt es viele Gründe, Python2.5
an diesem Punkt zu bleiben?
sudo easy_install-2.7 pip
funktioniert, also wofür genau -rwxr-xr-x 2 root wheel 925 Oct 23 14:48 easy_install
?
Okay.
Antwort auf Nummer 1 ist ja.
Die Fink-Entwickler empfehlen, die OSX-Versionen von Python NICHT zu entfernen, einfach weil sie keine besonders großen Dateien sind und für bestimmte OSX-Funktionen und -Programme erforderlich sein können.
Und ich möchte, dass eine zusätzliche Version von mindestens python2.7 von fink installiert wird, da es sich um einen Portbaum handelt, der darauf ausgelegt ist, eine UNIX-ähnliche Verzeichnisstruktur zu erstellen, die hoffentlich dafür sorgt, dass PostgreSQL und Python gut zusammenspielen.
Bei Frage Nummer 2 bin ich mir nicht sicher. Ich denke, das würde funktionieren, aber das Installieren der ursprünglichen OSX-Versionen vermeidet das Problem.
Frage 3: Ja. - Siehe Antwort zu Frage 1.
Die fink
Version so zu machen, dass sie über das Terminal läuft, ist eine Frage von:
Stellen Sie sicher, dass das Verzeichnis, das die Fink-Python-Binärdatei enthält, dem OSX (oder GUI-installierten) in der vorangeht PATH
, was in Benutzern .profile
oder .bash_profile
(befindet sich im Verzeichnis ~/
, dem Stammverzeichnis des Benutzers) erfolgen kann, indem Sie entweder das Fink-Init-Skript aufrufen, . /sw/bin/init.sh
ODER sicherstellen die in der Datei NACH jeder anderen Zeile enthalten ist, die eine mit einem der anderen Python-Pfade am Anfang export PATH=/sw/bin:$PATH
exportiert . PATH
Zum Beispiel export PATH=/usr/bin:$PATH
oder export PATH=/usr/local/bin:$PATH
.
Sofern wir die Python-CLI nicht wie aufrufen möchten python2.7
, müssen wir einen symbolischen Link im /sw/bin
Verzeichnis erstellen, der von „python“ auf „python2.7“ verweist, was mithilfe von erfolgt sudo ln -s *source* *link*
, was in diesem Fall so aussieht:
sudo ln -s /sw/bin/python2.7 /sw/bin/python
Ich bin mir noch nicht sicher, was die Antwort auf Frage 4 ist, aber ich sehe, dass alle darin vorhandenen Bibliotheken /sw/bin
von dort aus aufgerufen werden, im Gegensatz zu anderen Installationen. Gut.
Ich habe eine Kopie von Learning UNIX für OS X Mountain Lion, die ziemlich vielversprechend aussieht.