针对Python程序员,是否有类似于Perl的CPAN的东西?

35

因为Django框架的缘故,我正在学习Python。我已经是一名Perl程序员多年了,我非常习惯Perl的工具。其中一个我真正想念的东西是Perl的CPAN和其工具。在Python中有类似的东西吗?我希望能够像使用CPAN一样轻松地搜索、安装和维护Python模块。此外,还需要一个可以自动处理依赖项的系统。我尝试通过从网站下载zip文件,解压缩并执行以下操作来在Python中安装模块:

sudo python setup.py install

但它正在寻找另一个模块。现在,因为我很懒,不喜欢追踪依赖关系等,有没有简单的方法?

3个回答

33

Sammy,请看看pip,它可以让你执行"pip install foo"命令,并下载并安装它的依赖项(只要它们在PyPI上)。还有EasyInstall,但pip旨在取代它。


11

值得注意的是,pip和easy_install都使用Python包索引(PyPI),有时被称为“Cheeseshop”,来搜索软件包。Easy_install目前是最普遍支持的工具,因为它完全可以与setuptools和distutils风格的打包一起使用。查看James Bennett关于Python打包的评论,了解使用pip的好处,以及Ian Bicking的回复对差异的澄清。


1
现在,几年后,请参阅 https://dev59.com/wmw15IYBdhLWcg3w3vpe#14753678 以获取有关 Python 打包工具情况的综合概述。 - clacke
2
另外,建议使用virtualenv和Python 3.x中的本地venv,它们是确保可预测性并与系统中已安装软件包进行隔离的推荐方法。 - clacke
为了获取更好的、及时更新的信息,现在可以访问 https://python-packaging-user-guide.readthedocs.org/en/latest/current/。(/via https://dev59.com/wmw15IYBdhLWcg3w3vpe#14753678) - clacke

2
如果您使用 easy_install,建议通过以下方式安装软件包..
easy_install -v -Z package_name  |  tee date-package.log

-Z(缩写为--always-unzip)将.egg文件解压到目录中,以便您可以随后使用它们。

less *.egg/EGG-INFO/requires.txt  
less *.egg/EGG-INFO/PKG-INFO  
egrep '^(Name|Version|Sum|...)'  *.egg/EGG-INFO/PKG-INFO

在Sammy的问题中,除了PyPI之外,还有一些其他软件包索引:Scipy和Scipy文档用于科学计算;ohloh提供代码指标。请参考以下链接:
ScipyScipy文档用于科学计算
ohloh提供代码指标。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接