说说Python包管理

虽然我的Python学习才起步,不过有时候也需要装一些额外的软件包。一般Python教程上都推荐使用easy_install。这个工具很酷,有了它,我不需要去找软件包。我可以直接easy_install 包名,它会帮我去pypi查找下载最新的软件包,然后自动安装。这个和Linux上的apt、yum之类的包管理器很类似。但是问题来,作为Linux用户,我不希望我在系统上有两套包管理器。有一天我在安装Mako(一个很快的模板引擎),我就在想我是使用apt来安装呢,还是使用easy_install来安装。于是我用apt-cache showpkg python-mako检查一下,apt源中的mako是2.4版本的。然后我又用easy_install检查了一下,是2.5版本的。当然,听说easy_install所使用的pypi库的包往往都是最新的。像我这样的更新狂肯定想装2.5版本的,那我应该使用easy_install安装吗?

经我研究发现,easy_install有以下问题:

  1. 卸载能力低下,easy_install -m 包名,可以卸载软件包,但是卸载后还要手动删除遗留文件。

  2. 可能会和apt冲突。比如某天我用easy_install安装了软件包A,后来我在用apt安装软件包B的时候依赖软件包A,而apt并不知道A的存在。