2009-01-04 11 views
33

Estoy aprendiendo Python ahora por el framework Django. He sido programador de Perl durante varios años y estoy tan acostumbrado a las herramientas de Perl. Una de las cosas que realmente extraño es el CPAN de Perl y sus herramientas. ¿Hay algo equivalente en Python? Me gustaría poder buscar, instalar y mantener los módulos de Python tan fácil como CPAN. Además, un sistema que puede manejar dependencias automáticamente. He intentado instalar un módulo en Python mediante la descarga de un archivo zip de un sitio web, la abrió, y luego hacer:Para los programadores de Python, ¿hay algo equivalente al CPAN de Perl?

sudo python setup.py install

pero está buscando otro módulo. Ahora, vago como soy, no me gusta perseguir las dependencias y tal, ¿hay alguna manera fácil?

Respuesta

33

sammy, eche un vistazo a pip, que le permitirá hacer "pip install foo", y descargará e instalará sus dependencias (siempre que estén en PyPI). También hay EasyInstall, pero el objetivo de pip es reemplazar eso.

10

Puede ser útil tener en cuenta que tanto pip como easy_install usan el Python Package Index (PyPI), a veces llamado "Cheeseshop", para buscar paquetes. Easy_install es actualmente el más universalmente compatible, ya que funciona tanto con las herramientas de configuración como con el paquete de estilo de distutils, por completo. Consulte James Bennett's commentary en el paquete de Python por buenas razones para usar pip, y Ian Bicking's reply para obtener algunas aclaraciones sobre las diferencias.

+1

Ahora, un par de años después, consulte http://stackoverflow.com/a/14753678/260122 para obtener una descripción general excelente de la situación de la herramienta de empaquetado en Python. – clacke

+0

Además, observe 'virtualenv' y' venv' nativo de Python 3.x, son el método recomendado para predecir y aislar los paquetes que se instalan en su sistema. – clacke

+0

Para obtener una mejor información, actualizada, ahora hay https://python-packaging-user-guide.readthedocs.org/en/latest/current/. (/ a través de http://stackoverflow.com/questions/6344076/differences-between-distribute-distutils-setuptools-and-distutils2/14753678#comment25440872_14753678) – clacke

2

Si utiliza easy_install, me gustaría sugerir la instalación de paquetes haciendo ..

easy_install -v -Z package_name | tee date-package.log 

-Z (abreviatura de --always-unzip) descomprime los archivos .egg a los directorios para que pueda entonces ..

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

En la pregunta original de Sammy, un par de índices de paquetes distintos de PyPI son:
Scipy y Scipy docs para informática científica
ohloh con métricas de código.

Cuestiones relacionadas