"/ Library /" im Vergleich zu / usr / local / lib auf dem Mac

1903
Baz

Was ist der Unterschied zwischen diesen beiden Ordnern auf Mac OS X 8.5? Ich habe die neueste Version von tcl installiert und sie wurde in meinem Ordner / usr / local / lib abgelegt. Ich habe jedoch auch einen Tcl-Ordner unter / Library. Sollte ich stattdessen tcl in diesem Ordner installieren?

Ich versuche eigentlich, tk mit Python zu verwenden, aber Python beschwert sich über den falschen Bogen für eine Kachel dylib: /Library/Tcl/tile0.6/libtile0.6.dylib. Deshalb habe ich die neuesten Versionen von tk und tcl entwickelt und installiert.

Warum sucht Python3 dort anstelle von / usr / local / lib?

4

1 Antwort auf die Frage

4
Jimmie Fulton

Stellen Sie sich vor, dass Sie / Library als von Apple sanktioniert und / usr / local / * generell als Installationen von Drittanbietern im Terminal ausgeführt haben. Bei Ihrer Python-Installation handelt es sich wahrscheinlich um die von Apple mitgelieferte Installation. Daher weiß es nicht wirklich, welche Bibliotheken Sie selbst installiert haben. Sie können sys.path in Ihren Python-Apps festlegen, um ihnen mitzuteilen, woher sie Bibliotheken laden sollen. Sie können auch sys.path verwenden, um den Standardpfad zu ermitteln:

$> python >>> import sys >>> print sys.path 

Sie können auch ein Paketverwaltungssystem eines Drittanbieters verwenden, um alle Entwicklungsversionen der Software zu installieren, um eine genauere Kontrolle über die zu installierenden Bibliotheken zu erhalten. Auf diese Weise können Sie auch auf neuere Versionen von Bibliotheken aktualisieren, als von Apple bereitgestellt. MacPorts und Homebrew sind zwei solcher Paketverwaltungssysteme.

In Ihrem Fall interessieren Sie sich also für Tk und Python. Sie können MacPorts verwenden, um Ihre eigene Version von Python und Tk zu installieren, und diese Versionen anstelle der Standardversionen verwenden. Da diese Pakete vom selben Paketmanager installiert werden, werden der MacPorts-Version von Python alle anderen von MacPorts installierten Python-Bibliotheken bekannt.

Wenn Sie einen Paketmanager verwenden, müssen Sie einige Schritte ausführen, z. B. das Einrichten von $ PATH für die Verwendung der vom Paketmanager bereitgestellten Software. Lesen Sie daher die Dokumentationen und machen Sie sich ein Bild davon, was Sie erhalten dich in :-)

Ich habe python3 selbst installiert, aber ich habe es nicht auf der Kommandozeile gemacht. Wenn ich 'which python3' starte, bekomme ich /Library/Frameworks/Python.framework/Versions/3.1/bin/python3. Wenn ich sys.path drucke, sind alle aufgelisteten Verzeichnisse relativ zu / Library. Keine Erwähnung von / usr / local / lib. Baz vor 11 Jahren 0
If you are developing just for your local machine, you can add your own entries to sys.path in your scripts. sys.path.insert(1,'/usr/local/lib'), or sys.path.append('/usr/local/lib'). This line should appear before your import statement. This makes your script less portable to other machines, though. Package management would be better. You can also define a PYTHONPATH environment variable to augment the default sys.path. Jimmie Fulton vor 11 Jahren 0