Mac 上的“/Library/”与/usr/local/lib

Mac 上的“/Library/”与/usr/local/lib

在 mac os x 8.5 上这两个文件夹有什么区别?我安装了最新版本的 tcl,它被放在我的 /usr/local/lib 文件夹中。但是我在 /Library 下也有一个 tcl 文件夹。我应该把 tcl 安装在这个文件夹中吗?

我实际上正在尝试将 tk 与 python 一起使用,但 python 抱怨 tile dylib 的 arch 错误:/Library/Tcl/tile0.6/libtile0.6.dylib。这就是我构建并安装最新版本的 tk 和 tcl 的原因,

为什么 python3 在那里查找而不是 /usr/local/lib?

答案1

将 /Library 视为 Apple 认可的,将 /usr/local/* 视为通常在终端中执行的第三方安装。您的 Python 安装可能是 Apple 捆绑在 Mac 上的安装。因此,它实际上并不知道您自己安装的库。您可以在 Python 应用程序中设置 sys.path 来告诉它们从哪里加载库。您还可以使用 sys.path 查看默认路径:

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

您还可以采取的另一种方法是使用第三方包管理系统来安装所有开发版本的软件,以便更精细地控制要安装的库。这还允许您更新到比 Apple 提供的库更新的版本。MacPorts 和 Homebrew 就是两个这样的包管理系统。

因此,就您而言,您对 Tk 和 Python 感兴趣。您可以使用 MacPorts 安装您自己的 Python 和 Tk 版本,并使用这些版本而不是现成的版本。由于这些软件包是由同一个软件包管理器安装的,因此 MacPorts 版本的 Python 将知道 MacPorts 安装的任何其他 Python 库。

使用包管理器意味着您需要做一些事情,例如设置您的 $PATH 以使用包管理器提供的软件,因此请务必阅读文档并充分了解您将要做什么。:-)

相关内容