Umstellen von Python2.6 auf 2.7 unter MacOS - wie geht das sauber?
Hallo, ich muss mein Python von 2.6 auf 2.7 umstellen (dringend!) aus verschiedenen Gründen (benötigte Software braucht 2.7). Leider geht im Moment gar nix, und ich hoffe auf das Forum, weil in meiner Nähe leider niemand ist, den ich fragen könnte (sigh). 1. Ich fang jetzt mal mit einem aktuellen Problem an. Ich möchte z.b. "south" installieren, das kommt ja in /site-packages des jeweiligen Python x.y. Dazu möchte ich easy_install verwenden. Nun hab ich 2 Pythons: – /Library/Python/2.6/site-packages – /Library/Python/2.7/site-packages "easy_install" befindet sich im 2.6-Paket. Dort befindet sich auch schon eine south-Installation. Da ich jetzt alles für 2.7 brauche, will ich south also neu in 2.7, parallel zu 2.6 zufällig, installieren. Wenn ich also starte: "easy_install South --install-dir /Library/Python/2.7/site-packages", bekomme ich als Antwort: Searching for South Best match: South 0.7.5 Processing South-0.7.5-py2.6.egg South 0.7.5 is already the active version in easy-install.pth Also was heißt das - ist schon installiert? Ist mir aber wurscht, ich will es in 'nem andren Verzeichnis. Muss ich das alte aus Verzeichnis 2.6 erst deinstallieren? Muss ich easy_install ebenfalls im Verezeichnis 2.7 installieren? Das reicht erstmal, sonst wird's zuviel. Hoffe auf hilfreiche Antworten. Danke im voraus, Suesssauer
Hallo, On 07/09/12 21:44, Suesssauer wrote:
"easy_install" befindet sich im 2.6-Paket. Dort befindet sich auch schon eine south-Installation. Da ich jetzt alles für 2.7 brauche, will ich south also neu in 2.7, parallel zu 2.6 zufällig, installieren.
Wenn ich also starte: "easy_install South --install-dir /Library/Python/2.7/site-packages", bekomme ich als Antwort:
Searching for South Best match: South 0.7.5 Processing South-0.7.5-py2.6.egg South 0.7.5 is already the active version in easy-install.pth
Also was heißt das - ist schon installiert? Ist mir aber wurscht, ich will es in 'nem andren Verzeichnis. Muss ich das alte aus Verzeichnis 2.6 erst deinstallieren? Muss ich easy_install ebenfalls im Verezeichnis 2.7 installieren?
ich könnte mir vorstellen, dass easy_install das aus dem Inhalt von `sys.path` folgert. (Die Liste `path` im `sys`-Modul enthält eine Liste von Verzeichnissen, in denen bei einem Import nach Python-Paketen und Modulen gesucht wird.) Möglicherweise reicht es schon, wenn du easy_install unter Python 2.7 ausführst, also zum Beispiel python2.7 /pfad/zu/easy_install South --install-dir /Library/Python/2.7/site-packages easy_install sollte sich dann nach dem `sys.path` deines Python 2.7 richten. Generell könntest du dir auch mal die Tools virtualenv und pip ansehen, mit denen du eine meines Erachtens bessere Kontrolle darüber hast, welche Pakete für welche Python-Version du wo installierst. Viele Grüße Stefan
Am 9. Juli 2012 21:44 schrieb Suesssauer <yh.wang.de@googlemail.com>:
Hallo, ich muss mein Python von 2.6 auf 2.7 umstellen (dringend!) aus verschiedenen Gründen (benötigte Software braucht 2.7).
Leider geht im Moment gar nix, und ich hoffe auf das Forum, weil in meiner Nähe leider niemand ist, den ich fragen könnte (sigh).
1. Ich fang jetzt mal mit einem aktuellen Problem an. Ich möchte z.b. "south" installieren, das kommt ja in /site-packages des jeweiligen Python x.y. Dazu möchte ich easy_install verwenden. Nun hab ich 2 Pythons:
– /Library/Python/2.6/site-packages – /Library/Python/2.7/site-packages
"easy_install" befindet sich im 2.6-Paket. Dort befindet sich auch schon eine south-Installation. Da ich jetzt alles für 2.7 brauche, will ich south also neu in 2.7, parallel zu 2.6 zufällig, installieren.
Wenn ich also starte: "easy_install South --install-dir /Library/Python/2.7/site-packages", bekomme ich als Antwort:
Searching for South Best match: South 0.7.5 Processing South-0.7.5-py2.6.egg South 0.7.5 is already the active version in easy-install.pth
Also was heißt das - ist schon installiert? Ist mir aber wurscht, ich will es in 'nem andren Verzeichnis. Muss ich das alte aus Verzeichnis 2.6 erst deinstallieren? Muss ich easy_install ebenfalls im Verezeichnis 2.7 installieren?
Das reicht erstmal, sonst wird's zuviel. Hoffe auf hilfreiche Antworten.
"easy_install" muss selbst für die Python-Version installiert sein, für die Du damit Pakete installieren willst, denn easy_install importiert unter der Haube Module aus dieser Python-Version, um die Installationspfade zu bestimmen. Anders gesagt: Wenn Du versuchst, mit "--install-dir" das Zielverzeichnis zu ändern, installierst Du zwar in ein Python 2.7-Verzeichnis, aber letztlich immer noch für eine 2.6er Version. Bleibst Du bei Deinem bereits installierten 2.7, musst Du zuerst easy_install (oder besser pip) zuerst für Python 2.7 installieren, indem Du manuell das entsprechende Archiv herunterlädst, entpackst und mit "python2.7 setup.py install" installierst. Ich rate Dir allerdings dazu, diese Version wieder zu entfernen, und Python 2.7 stattdessen über "homebrew" zu installieren. Dann ist "easy_install" für Python 2.7 gleich mit dabei. Noch besser ist es, mit pythonbrew [1] Python 2.7 ins Home-Verzeichnis zu installieren. Damit ersparst Du Dir Eingriffe ins System, und kannst noch dazu beliebig viele Python-Versionen nebeneinander installieren. [1]: https://github.com/utahta/pythonbrew/ Sebastian Wiesner
On 09.07.2012 21:44, Suesssauer wrote:
Hallo, ich muss mein Python von 2.6 auf 2.7 umstellen (dringend!) aus verschiedenen Gründen (benötigte Software braucht 2.7).
Leider geht im Moment gar nix, und ich hoffe auf das Forum, weil in meiner Nähe leider niemand ist, den ich fragen könnte (sigh).
1. Ich fang jetzt mal mit einem aktuellen Problem an. Ich möchte z.b. "south" installieren, das kommt ja in /site-packages des jeweiligen Python x.y. Dazu möchte ich easy_install verwenden. Nun hab ich 2 Pythons:
– /Library/Python/2.6/site-packages – /Library/Python/2.7/site-packages
"easy_install" befindet sich im 2.6-Paket. Dort befindet sich auch schon eine south-Installation. Da ich jetzt alles für 2.7 brauche, will ich south also neu in 2.7, parallel zu 2.6 zufällig, installieren.
Wenn ich also starte: "easy_install South --install-dir /Library/Python/2.7/site-packages", bekomme ich als Antwort:
Searching for South Best match: South 0.7.5 Processing South-0.7.5-py2.6.egg South 0.7.5 is already the active version in easy-install.pth
Also was heißt das - ist schon installiert? Ist mir aber wurscht, ich will es in 'nem andren Verzeichnis. Muss ich das alte aus Verzeichnis 2.6 erst deinstallieren? Muss ich easy_install ebenfalls im Verezeichnis 2.7 installieren?
Das reicht erstmal, sonst wird's zuviel. Hoffe auf hilfreiche Antworten. Hallo,
Wie Stefan und Sebastian schon angedeutet haben, solltest du ein virtualenvironment verwenden. Auf Systemen Debian/Ubuntu gibt es meistens mehrere Versionen von Python und auch von python-setuptools oder python-pip. Schau mal ob du neben easy_install vielleicht auch ein easy_install2.7 hast, dann verwende einfach dieses. Aber wie gesagt, am besten ein virtualenv erzeugen, dann hast du es einfacher. $ virtualenv -ppython2.7 --no-site-packages meinvenv dann aktivieren: $ source meinvenv/bin/activate Dann hast du beim Aufruf von python, dein python2.7, solange dein virtualenv aktiviert ist. Auf deinem Arbeitsrechner bietet sich auch die Verwendung von virtualenvwrapper an. viele Grüße Maik Derstappen -- Maik Derstappen Geschäftsführer Inqbus GmbH & Co. KG Softwareentwicklung, Consulting & Hosting Karl-Heine-Straße 99 | 04229 Leipzig | Deutschland Telefon: +49 341 989758-52 Fax: +49 341 989758-72 E-Mail: maik.derstappen@inqbus.de Web: http://inqbus.de/ Persönlich haftende Gesellschafterin: Inqbus Management GmbH (Amtsgericht Leipzig, HRB 27350) Vertretungsberechtigte Geschäftsführer: Maik Derstappen, Dr. Volker Jaenisch, Thomas Massmann, Markus Zapke-Gründemann Registergericht: Amtsgericht Leipzig Registernummer: HRA 16424 Umsatzsteuer-Identifikationsnummer: DE278744671
participants (4)
-
Maik Derstappen -
Sebastian Wiesner -
Stefan Schwarzer -
Suesssauer