19

我有一个问题来自我遵循教程而没有真正理解我在做什么。我认为问题的根源在于我不了解 OS X 文件系统的工作原理。

问题比 Python 更大,但是当我开始学习 Python 时,我才意识到我真正了解的很少。所以一开始我开始学习教程,这些教程让我经常使用 easy_install 命令,当很多教程推荐 PIP 时,我从来没有运行过它。所以我运行了很多命令并安装了很多不同的包。

据我了解,Lion 附带了 python 安装。我一直在使用它,并且从这里我用easy_install安装了各种软件包。有没有办法回到默认安装并从头开始?这是我想做的事情吗?如果是,为什么?

使用我随 Homebrew 安装的 Python 版本有什么好处吗?运行 Python 命令时,如何查看 Python 的运行位置?

当我使用easy_install、homebrew、macports等安装某些东西时,事情最终会在哪里结束?

4

2 回答 2

26

Homebrew 将其软件安装/usr/local在 Mac 上的子目录中。OS X 不会自行安装任何东西。事实上,/usr/local它是为用户安装的东西保留的。由于 Homebrew 永远不会在外部安装文件/usr/local(甚至没有能力,除非您运行brewusing sudo- 这是推荐的_)并且 OS X 永远不会那里安装文件,因此两者永远不会混合。

easy_install并将pip文件默认安装到系统目录中。这就是为什么您必须运行这些命令sudo才能使用它们安装软件包。

无论您使用哪种操作系统,我都无法推荐virtualenv 。它将 Python 的副本以及所需的任何包或模块安装在您选择的目录中。例如:

$ cd /tmp
$ virtualenv foo         
New python executable in foo/bin/python
Installing setuptools............done.
Installing pip...............done.
$ cd foo
$ bin/pip install sqlalchemy
Downloading/unpacking sqlalchemy
  Downloading SQLAlchemy-0.7.7.tar.gz (2.6Mb): 2.6Mb downloaded
  Running setup.py egg_info for package sqlalchemy
[...]    
Successfully installed sqlalchemy
Cleaning up...

[work, work, work]
[decide this was a bad idea]
$ cd /tmp; rm -rf foo

...并且该项目的所有痕迹现在都完全消失了。

用于easy_install将 virtualenv 安装到 OS X 本身——就像你为其他软件包所做的那样——然后在隔离的目录中进行所有新的开发,你可以立即清除这些目录。这几乎是当今开发和部署 Python 应用程序的标准方式。

于 2012-05-08T20:50:04.357 回答
2

使用通过 Homebrew 或 MacPorts 等包管理器安装的 Python 的优势在于,它提供了一种简单的方法来删除 Python 安装并重新安装它。此外,您可以安装比 Mac OS X 提供的版本更新的版本。

于 2012-05-08T20:39:50.123 回答