«/ Библиотека /» против / usr / local / lib на Mac

1838
Baz

В чем разница между этими двумя папками на Mac OS X 8.5? Я установил последнюю версию tcl, и она была помещена в мою папку / usr / local / lib. Однако у меня также есть папка tcl в / Library. Должен ли я вместо этого установить tcl в эту папку?

Я на самом деле пытаюсь использовать tk с python, но python жалуется на неправильную арку для тайла dylib: /Library/Tcl/tile0.6/libtile0.6.dylib. Вот почему я собрал и установил последние версии tk и tcl,

Почему там выглядит python3 вместо / usr / local / lib?

4

1 ответ на вопрос

4
Jimmie Fulton

Представьте / Library как санкционированное Apple, а / usr / local / * как обычно сторонние установки, выполняемые в терминале. Ваша установка на Python, скорее всего, является установкой, поставляемой с вашим Mac в комплекте от Apple. Следовательно, он не знает о библиотеках, которые вы установили самостоятельно. Вы можете установить sys.path в своих приложениях python, чтобы сообщить им, откуда загружать библиотеки. Вы также можете использовать sys.path, чтобы увидеть путь по умолчанию:

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

Другой путь, который вы также можете выбрать, - это использовать стороннюю систему управления пакетами для установки всех ваших версий программного обеспечения для разработки, чтобы получить более детальный контроль над тем, какие библиотеки вы хотите установить. Это также позволяет вам обновлять библиотеки до более новых версий, чем предлагает Apple. MacPorts и Homebrew - две такие системы управления пакетами.

Итак, в вашем случае вас интересуют Tk и Python. Вы можете использовать MacPorts для установки своих собственных версий Python и Tk, и использовать эти версии вместо готовых версий. Поскольку эти пакеты устанавливаются одним и тем же менеджером пакетов, версия Python для MacPorts будет знать о любых других библиотеках python, установленных MacPorts.

Использование диспетчера пакетов означает, что вам нужно будет сделать некоторые вещи, такие как настройка $ PATH для использования программного обеспечения, предоставляемого менеджером пакетов, поэтому обязательно прочитайте документы и получите хорошее представление о том, что вы получите себя в. :-)

Я сам установил python3, но я не делал этого в командной строке. Когда я запускаю 'which python3', я получаю /Library/Frameworks/Python.framework/Versions/3.1/bin/python3. Когда я печатаю sys.path, все перечисленные каталоги относятся к / Library. Нет упоминания о / usr / local / lib. Baz 11 лет назад 0
Если вы разрабатываете только для своего локального компьютера, вы можете добавить свои собственные записи в sys.path в ваших сценариях. sys.path.insert (1, '/ usr / local / lib') или sys.path.append ('/ usr / local / lib'). Эта строка должна появиться перед вашим оператором импорта. Это делает ваш скрипт менее переносимым на другие машины. Управление пакетами было бы лучше. Вы также можете определить переменную среды PYTHONPATH для дополнения sys.path по умолчанию. Jimmie Fulton 11 лет назад 0

Похожие вопросы