3

如果我在 OSX (Snow Leopard) 上学习 python 开发,我应该如何最好地管理我的 python 包?

我对那里有大量优秀的 python 包感到非常兴奋。我很想开始学习它们,但是包管理让我完全糊涂了。显然我不知道我在做什么。我在 Stack Overflow 上看到很多关于包管理的问题,人们经常这样回答:“你为什么不直接使用x?看看我从 shell 复制的这一行是多么容易,”

$ x install something

在x无法处理某些特定依赖项或无法处理包y之前,这是一个很好的答案。这是我已经尝试过的:

  1. 我刚开始只是用easy_install安装东西。
  2. 我很快发现一些重要的包缺少依赖项(PIL),所以我四处寻找并发现了MacPorts
  3. 我开始使用 MacPorts 并且我的所有环境变量都变得非常混乱,所以我学会了足够的 bash 来重新配置PATH,PYTHONPATHsys.path让事情正常工作(并使我的终端窗口看起来很漂亮)。MacPorts 有一段时间似乎很棒。
  4. 但后来我对我使用的不同模块的哪个版本感到困惑,我发现了更多的依赖问题(GDAL)......
  5. 然后几个非常聪明的人强烈推荐我改用Homebrew。所以我卸载了 MacPorts 并安装了 Homebrew。
  6. 现在我有了 Homebrew,我似乎无法安装很多东西,因为我不知道如何为我想使用的大多数 python 包创建公式。如果在pypi列出了一个包,我不知道我是否应该实际使用 Homebrew,或者只是弄清楚如何配置 easy_install 以安装到 Homebrew 目录。而且我仍然不知道我应该如何最好地处理丢失的依赖项。也许有一些与 python 相关的公式的秘密存储库?或将端口文件转换为公式的简单方法

我知道正确的答案可能取决于我要安装的内容。我正在尝试安装允许我的软件包集:

  1. 使用 python 玩转一切并自动化一切
    • 应用脚本
    • 太平船务
    • 游戏
  2. 用python做GIS相关工作
    • 格达尔
    • 匀称
    • 地理信息系统
    • scipy
  3. 探索网络应用的奇妙可能性
    • django
    • 谷歌应用引擎

我完全愿意擦掉我机器上的所有东西,现在它肯定有点杂乱无章的包裹碎片。如果我应该学习virtualenv,或者只是学习更多关于检查依赖项并自己安装它们的基本过程,我很乐意这样做。如果我应该深入研究 Homebrew,我也很乐意这样做。我应该如何处理这些问题,这些问题通常会阻止我做我真正想做的事情(用 python 制作整洁的东西)?

4

3 回答 3

6

我强烈建议以下内容。我将它们用于基本的包管理。

应该有帮助的教程/博客:

于 2011-01-29T08:36:38.973 回答
3

在我看来,处理 python 包的最好方法是让一组 Python 安装与系统 Python 分开,每个版本对应一个你需要的版本。 这样我就不会用旧版本的包污染主 python,我可以删除它们并重新安装它们,而我的任何项目都不会出现问题。

细节:

在 OS X 上,使用 Macports 版本很好。自制软件可能也是如此,尽管我从未使用过它。(在 Linux 上,我将 Python 从源代码安装到 /opt/pythonxx/,例如 /opt/python25/、/opt/python26/、/opt/python27 和 /opt/python31。)

然后我从不将任何包安装到这些 Python 中,除了virtualenv我在所有 Python 中安装的distributepip。当我想为一个项目安装一个包时,我使用我用于它的 python 版本为该项目创建一个 virtualenv:

$ cd /home/projects
$ /opt/python27/bin/virtualenv acoolproject
$ cd acoolproject
$ ./bin/pip install ThepackageIneed.

当您分别安装每个项目的依赖项时,您可以避免依赖项问题以及版本冲突和版本混淆。

您可以使用 virtualenv 启用和禁用环境,我倾向于从不这样做,而是显式使用 python 可执行文件:

$ ./bin/python main.py

或者

$ /home7projects/acoolproject/bin/python

如果我需要一些不能用 pip 安装的东西,比如 Plone、nginx 或 varnish,我会使用 zc.buildout 进行可复制的环境配置,zc.buildout 也将单独运行,因此不会在主要蟒蛇。

于 2011-01-29T10:21:58.857 回答
0

如果您使用 Homebrew,您可能希望使用它pip来安装 Python 包。pip可以通过 Homebrew 安装,但 Homebrew 不包含其他 Python 包的公式。但是使用 pip 安装软件包非常容易——就像

$ pip install <package>

(包名可以在 PyPI 上找到。)如果你通过 Homebrew 安装了 pip,这就是你需要做的。

于 2011-02-01T05:39:15.027 回答