Frage

Ich fange Python zu lernen und lieben es. Ich arbeite auf einem Mac hauptsächlich als auch Linux. Ich finde, dass auf Linux (Ubuntu 9.04 meistens), wenn ich ein Python-Modul installieren apt-get es funktioniert gut. Ich kann es ohne Probleme importieren.

Auf dem Mac bin ich mit MacPorts verwendet, um alle Unixy Sachen zu installieren. Aber ich finde, dass die meisten der Python-Modulen ich es installieren nicht von Python gesehen zu werden. Ich habe einige Zeit damit verbracht, um mit PATH-Einstellungen zu spielen und mit python_select. Nichts hat sich wirklich funktioniert und ich an dieser Stelle nicht wirklich bin zu verstehen, sondern ich bin nur Stochern.

Ich habe den Eindruck, dass Macports nicht überall beliebt für die Verwaltung der Python-Module. Ich möchte frisch beginnen eine „akzeptiert“ verwenden (wenn das das richtige Wort) Ansatz.

Also, ich frage mich, was ist die Methode, die Mac Python-Entwickler verwenden, um ihre Module zu verwalten?

Bonus Fragen:

Verwenden Sie Apples Python oder eine andere Version? Haben Sie alles, was von der Quelle kompilieren oder gibt es ein Paket Krippe, die gut (Fink?) Funktioniert.

War es hilfreich?

Lösung

Die beliebteste Art Python-Pakete zu verwalten (wenn Sie nicht Ihr System Paket-Manager) ist Setuptools und easy_install zu verwenden. Es ist wahrscheinlich bereits auf Ihrem System installiert ist. Verwenden Sie es wie folgt aus:

easy_install django

easy_install verwendet die Python Package Index die ist eine erstaunliche Ressource für Python-Entwickler. Werfen Sie einen Blick, um zu sehen, welche Pakete stehen zur Verfügung.

Eine bessere Option ist pip , die Traktion gewinnt, wie es versucht, fix viele der Probleme mit easy_install verbunden. Pip verwendet die gleiche Paket-Repository wie easy_install, es funktioniert einfach besser. Wirklich das einzige Mal Gebrauch verwenden müssen easy_install für diesen Befehl lautet:

easy_install pip

Danach verwenden:

pip install django

An einem gewissen Punkt werden Sie wahrscheinlich ein wenig über virtualenv lernen wollen. Wenn Sie eine Menge von Python Entwicklung bei Projekten mit widersprüchlichen Anforderungen Paket tun, ist virtualenv ein Geschenk des Himmels. Es ermöglicht Ihnen völlig verschiedene Versionen von verschiedenen Paketen zu haben, und zwischen ihnen wechseln Ihren Bedürfnissen leicht abhängig.

In Bezug auf dem Python zu verwenden, um, Kleben mit Apples Python gibt Ihnen die am wenigsten Kopfschmerzen, aber Wenn Sie eine neuere Version benötigen (Leopard ist 2.5.1 glaube ich), geht ich würde mit dem Macports python 2.6.

Andere Tipps

Ihre Frage ist schon drei Jahre alt, und es gibt einige Details in anderen Antworten behandelt:

Die meisten Leute, die ich kenne benutzen HomeBrew oder MacPorts , ziehe ich MacPorts wegen seiner sauberen Schnitt von dem, was ein Standard-Mac OS X-Umgebung und meine Entwicklung Setup. bewegen Sie einfach Ihre / opt Ordner und testen Sie Ihre Pakete mit einer normalen Benutzer Python-Umgebung

MacPorts ist nur tragbar innerhalb Mac, aber mit easy_install oder pip erfahren Sie, wie Sie Ihre Umgebung einrichten in jeder Plattform (Win / Mac / Linux / BSD ...). Des Weiteren wird es immer mehr auf dem neuesten Stand und mit mehr Pakete

Ich persönlich lassen MacPorts meinen Python-Module hat alles im Griff halten aktualisiert. Wie jeder andere High-Level-Package Manager (dh: apt-get) ist es viel besser für die schweres Heben von Modulen mit vielen binären Abhängigkeiten. Es gibt keine Art, wie ich meine Qt-Bindungen (pyside) mit easy_install oder pip bauen würde. Qt ist riesig und nimmt viel zu kompilieren. Sobald Sie ein Python-Paket mögen, die eine Bibliothek von nicht Python-Programmen verwendet wird, muss, versuchen easy_install oder pip

zu vermeiden

An einem gewissen Punkt werden Sie feststellen, dass es einige Pakete fehlen in MacPorts. Ich glaube nicht, dass MacPorts jemals geben Ihnen die ganze cheese. Zum Beispiel musste ich vor kurzem die Elixir Modul, aber MacPorts bietet nur py25-Elixier und py26-Elixier, keine py27 Version. In solchen Fällen müssen Sie:

  

pip-2.7 installieren --user Elixier

(stellen Sie sicher, dass Sie immer geben Kern- (version))

Das wird eine zusätzliche Python-Bibliothek in Ihrem Home-Verzeichnis erstellen. Ja, Python wird mit mehr als einer Bibliothek Standort arbeiten: eine kontrollierte von MacPorts und einen Benutzer lokal eine für alles in MacPorts fehlt

.

Beachten Sie Nun, da ich über easy_install pip begünstigen. Es gibt einen guten Grund, warum Sie Setuptools vermeiden sollten und easy_install. Hier ist eine gute Erklärung und ich versuche, von ihnen fern zu halten. Eine sehr nützliche Funktion von pip gibt Ihnen eine Liste aller Module (entlang ihrer Versionen), die Sie mit MacPorts installiert, easy_install und pip selbst:

  

pip-2.7 Einfrieren

Wenn Sie bereits easy_install gestartet verwenden, keine Sorge, kann pip alles schon von easy_install und sogar ein Upgrade der Pakete mit der Installation fertig erkennen.

Wenn Sie ein Entwickler sind im Auge behalten virtualenv zur Steuerung verschiedene Setups und Kombinationen von Modulversionen. Andere Antworten erwähnen es schon, was bisher nicht erwähnt wird, ist der Tox -Modul, ein Tool zum Testen, die Ihr Paket installiert korrekt mit verschiedenen Python-Versionen.

Obwohl ich normalerweise nicht Versionskonflikte haben, Ich mag virtualenv haben eine saubere Umgebung einzurichten und eine klare Sicht auf meine Pakete Abhängigkeiten zu erhalten. So kann ich nie vergessen, alle Abhängigkeiten in meinem setup.py

Wenn Sie gehen für MacPorts bewusst sein, dass mehrere Versionen des gleichen Pakets werden nicht mehr wie der alte Debian-Stil mit einem zusätzlichen python_select Paket ausgewählt (es für die Kompatibilität ist immer noch da). Jetzt haben Sie den Auswahlbefehl zu wählen, welche Python-Version verwendet (Sie können sogar die Apple-installieren diejenigen wählen):

$  port select python
Available versions for python:
    none
    python25-apple
    python26-apple
    python27 (active)
    python27-apple
    python32

$ port select python python32

In tox oben drauf und Ihre Programme sollten wirklich tragbar sein

Bitte finden Sie unter Python OS X Entwicklungsumgebung . Der beste Weg ist, zu verwenden, MacPorts . Herunterladen und Installieren von MacPorts, dann installiert Python über MacPorts, indem Sie die folgenden Befehle im Terminal:

sudo port install python26 python_select
sudo port select --set python python26

oder

sudo port install python30 python_select
sudo port select --set python python30

Mit dem ersten Satz von Befehlen Python 2.6 und den zweiten Satz 3.0 installieren Python zu installieren. Dann verwenden:

sudo port install py26-packagename

oder

sudo port install py30-packagename

In den obigen Befehlen ersetzen Paket mit dem Namen des Pakets, zum Beispiel:

sudo port install py26-setuptools

Diese Befehle werden automatisch das Paket installieren (und ihre Abhängigkeiten) für die gegebene Python-Version.

Für eine vollständige Liste der verfügbaren Pakete für Python, Typ:

port list | grep py26-

oder

port list | grep py30-

Welche Sie hängt Befehl verwenden, auf dem Python-Version Sie installieren wollen.

Ich benutze MacPorts Python und alle Module von Drittanbietern von MacPorts in /opt/local verfolgt zu installieren, und ich installieren Sie alle manuell installierten Module (die nicht in der MacPorts Repository) in /usr/local, und dies hat dazu geführt, nie irgendwelche Probleme. Ich glaube, Sie in Bezug auf die Verwendung bestimmter MacPorts Skripte und Umgebungsvariablen verwechselt werden können.

MacPorts python_select wird verwendet, um die „aktuelle“ Version von Python zu wählen, aber es hat nichts mit Modulen zu tun. So können Sie beispielsweise installieren sowohl Python 2.5 und Python 2.6 mit MacPorts, und wechseln Sie zwischen installiert.

Die $PATH Umgebungsvariablen tut nicht beeinflussen, was Python-Module geladen werden. $PYTHONPATH ist das, was Sie suchen. $PYTHONPATH sollten Module auf Verzeichnisse mit Python zeigen Sie laden möchten. In meinem Fall meine $PYTHONPATH Variable enthält /usr/local/lib/python26/site-packages. Wenn Sie MacPorts' Python verwenden, setzt es die anderen richtigen Verzeichnisse für Sie, so dass Sie nur hinzufügen müssen zusätzliche Pfade $PYTHONPATH. Aber auch hier $PATH wird nicht verwendet, wenn Python sucht nach Modulen, die Sie installiert haben.

$PATH ist verwendet ausführbare Dateien zu finden, wenn Sie also MacPorts' Python installieren, stellen Sie sicher, dass /opt/local/bin in Ihrem $PATH ist.

Es ist nichts falsch mit einer MacPorts Python-Installation verwenden. Wenn Sie Python-Module von MacPorts installieren, aber dann nicht sehen, wie sie, die wahrscheinlich bedeutet, dass Sie nicht berufen sich die MacPorts python Sie installiert. In einem Terminal-Shell können Sie absolute Pfade verwenden, um die verschiedenen Pythons aufzurufen, die installiert werden können. Zum Beispiel:

$ /usr/bin/python2.5         # Apple-supplied 2.5 (Leopard)
$ /opt/local/bin/python2.5   # MacPorts 2.5
$ /opt/local/bin/python2.6   # MacPorts 2.6
$ /usr/local/bin/python2.6   # python.org (MacPython) 2.6
$ /usr/local/bin/python3.1   # python.org (MacPython) 3.1

Um den richtigen Python standardmäßig zu erhalten erfordert Shell $ PATH sicherzustellen richtig, dass die richtige ausführbare Datei zuerst gefunden, um sicherzustellen, gesetzt wird. Eine andere Lösung ist Shell-Aliase auf die verschiedenen Pythons zu definieren.

A python.org (MacPython) Installation ist auch in Ordnung, wie andere vorgeschlagen haben. easy_install kann helfen, aber auch hier, weil jede Python-Instanz einen eigenen easy_install Befehl hat, stellen Sie sicher, dass Sie die richtigen easy_install sind aufgerufen wird.

Wenn Sie Python von MacPorts verwenden, es hat seine eigene easy_install sich unter: /opt/local/bin/easy_install-2.6 (für py26, das ist). Es ist nicht das gleiche wie einfach easy_install direkt anrufen, auch wenn Sie python_select verwendet, um Ihren Standard-Python-Befehl zu ändern.

Haben Sie sich in easy_install alle an? Es wird nicht Ihre Macports oder so etwas synchronisieren, aber es wird automatisch das neueste Paket und alle notwendigen Abhängigkeiten herunterladen, d.

easy_install nose

für die Nase Unit-Test-Paket, oder

easy_install trac

für die trac Bug-Tracker.

Es ist ein bisschen mehr Informationen über ihre Easy Seite zu.

Für MacPython Installationen, fand ich eine effektive Lösung des Problems mit Setuptools (easy_install) in diesem Blog-Eintrag auf die Festsetzung:

http://droidism.com/getting -running-mit-django-and-MacPython-26-on-Leopard

Ein praktischer Tipp enthält, herauszufinden, welche Version von Python im Terminal aktiv ist:

which python

Wenn Sie Module mit MacPorts installieren, es geht nicht in Apple-Version von Python. Statt die Module installiert sind, auf die MacPorts-Version von Python ausgewählt.

können Sie ändern, welche Version von Python standardmäßig verwendet wird, bezeichnet einen Mac-Port python_select . Anleitung hier .

Außerdem gibt es easy_install . Welche verwenden Python Python-Module zu installieren.

Sie können bereits haben vorinstalliert, pip3 so probieren Sie es einfach!

In Bezug auf die Python-Version zu verwenden, Mac OS in der Regel Schiffe eine alte Version von Python. Es ist eine gute Idee, auf eine neuere Version zu aktualisieren. Sie können eine .dmg-Download von http://www.python.org/download/ . Wenn Sie das tun, denken Sie daran den Pfad zu aktualisieren. Sie können die genauen Befehle hier http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/

Ich benutze easy_install mit Apples Python, und es funktioniert wie ein Charme.

Direkt installieren Sie eines der fink Pakete (Django 1.6 als 2013-Nov)

fink install django-py27
fink install django-py33

oder erstellen Sie sich eine virtualenv:

fink install virtualenv-py27
virtualenv django-env
source django-env/bin/activate
pip install django
deactivate # when you are done

oder benutzen fink django sowie alle weiteren pip installierten Pakete in einer virtualenv

fink install django-py27
fink install virtualenv-py27
virtualenv django-env --system-site-packages
source django-env/bin/activate
# django already installed
pip install django-analytical # or anything else you might want
deactivate # back to your normally scheduled programming
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top