Como obtener decimal.py si tengo Python 2.3.x

Este texto explica como obtener un archivo apropiado para la instalación de decimal en su Python 2.3.x. El archivo README explica como realizar la instalación si el archivo que baja no hace todo por usted, y también contiene otra información útil y enlaces.

El módulo decimal.py viene con la distribución estándar de Python 2.4 y superiores; en estos casos no necesita bajarlo aparte. Note que decimal no está oficialmente soportado para versiones de Python 2.2 y anteriores (si se mete en arqueología, ¡está por las suyas!).

Bajando los archivos necesarios

Puede elegir una de dos opciones aquí: bajar un archivo instalador del módulo, o bajar los archivos por separado.

En el primer caso, el procedimiento es más sencillo, pero quizás no obtenga la versión más reciente. En el segundo caso, el procedimiento consta de más pasos pero se asegurará de bajar la versión más reciente del módulo.

Usando el instalador

Vaya a http://sourceforge.net/projects/sigefi, a la parte de archivos, y elija que tipo de paquete desea bajar:

  • decimal-x.x.win32.exe: Solamente para Windows.
  • decimal-x.x-x.rpm: Para las distribuciones Linux que soportan instaladores RPM.
  • decimal-x.x.tar.gz: Instalador más simple y general (debería funcionar en cualquier plataforma que tenga Python instalado).

En el primer caso, simplemente ejecute el instalador. En el segundo caso, haga rpm -i decimal-x.x-x.rpm siendo root.

En el tercer caso, tambien siendo root, desde la linea de comandos descomprima y expanda el paquete, vaya al directorio creado y ejecute el instalador; por ejemplo para una instalación típica Unix o Linux:

$ gunzip decimal-x.x.tar.gz
$ tar -xf decimal-x.x.tar
$ cd decimal-x.x
$ su [[ ingrese la clave apropiada cuando se lo pida ]]
# python setup.py install
# [[ cierre la sesión de root con  Ctrl-D ]]
$

Alternativamente, si su máquina está configurada apropiadamente, en lugar de los pasos anteriores puede utilizar sudo (nuevamente, quizás deba ingresar la clave apropiada y sudo se lo pide):

$ sudo python setup.py install

Esto asume que Python 2.3 es el encontrado como python en su PATH. De otra manera, ingrese el camino completo a él, por ejemplo como:

$ sudo /camino/raro/python2.3 setup.py install

Bajando los archivos por separado

El módulo decimal consta de un sólo archivo: decimal.py, el cual puede bajar del CVS de Python:

http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Lib/decimal.py

Puede utilizar cualquier navegador o utilitario como curl, wget, etc, para bajar este archivo a su máquina.

Entonces debe copiar este archivo al directorio site-packages de su instalación de Python (por ejemplo, dependiendo de su plataforma y la manera exacta en como haya instalado Python, C:\Python23\FIXME\site-packages o /usr/lib/python2.3/site-packages). Note que quizás necesite privilegios de administrador para poder ubicarlo allí, lo que implica, como se explicó previamente en este documento, utilizar su o sudo o algún otro medio apropiado a su instalación.

En MacOSX 10.3, el Python 2.3 es parte del sistema operativo y es un framework de OSX; pero si trabaja en la Terminal, lo cual signigica basicamente trabajar al nivel del Unix BSD que subyace a MacOSX, puede tratarlo como un directorio, y (tipicamente con sudo desde un usuario que sea administrador ya que root normalmente no está habilitado en una correcta instalación de MacOSX) copiar decimal.py en el bastante largo camino llamado:

/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages

Siempre que instale cualquier cosa es una buena idea probar lo que sea que haya instalado. Para probar la instalación de decimal.py necesita archivos adicionales: test_decimal.py y todos los archivos de prueba (dentro de un directorio), que también puede bajar desde el repositorio CVS de Python:

http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Lib/test/test_decimal.py http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Lib/test/decimaltestdata/

y luego puede continuar con la próxima sección de este documento.

Verificando que todo esté correcto

Si eligió bajar y expander un archivo, en el directorio que ejecutó el instalador tendrá un subdirectorio test. Si bajó los archivos por separado, o utilizó un instalador automático que no viene con las pruebas (por lo que también bajó los archivos de prueba por separado del CVS, como se indica en la sección previa), deberá tener en un directorio de prueba el archivo test_decimal.py y allí un subdirectorio decimaltestdata.

En cualquier caso, entre al directorio de prueba y ejecute las pruebas con:

python test_decimal.py

NO necesita privilegios de administrador para ejecutar las pruebas, por lo que es mejor ejecutarlos con un usuario normal, sin privilegios (las pruebas no pueden romper nada, pero "el menor privilegio posible" es una práctica clave de seguridad.

Verá un montón de mensajes mientra se prueban las distintas partes del módulo, terminando con un mensaje similar a:

OK
doctest (decimal) ... nn tests with zero failures

Si hay algún problema con las pruebas, por favor contacte a los desarrolladores.

Documentación

En el mismo directorio donde entró para ejecutar el instalador, tendrá un subdirectorio llamado docs. Este directorio contiene la documentación en varios formatos:

El archivo .tex fue extraído del CVS de Python, y los archivos HTML fueron extraídos de la documentación on-line de Python (modificados para que todos los enlaces relativos a Decimal apunten a los archivos bajados).

Puede también consultar la documentación online, actualmente en: http://www.python.org/dev/doc/devel/lib/module-decimal.html.

Reconocimientos

Quisiera agradecer a Alex Martelli por la ayuda con esta documentación y su gentil presión para armar esta distribución independiente de Decimal.