(Posiblemente instalando y) usando una versión específica de Python

(Posiblemente instalando y) usando una versión específica de Python

Para una aplicación científica, necesito usar versiones específicas de los paquetes de Python numpy, scipyy brian2. Instalé las versiones correctas en mi computadora portátil y ejecuté sus conjuntos de pruebas de la siguiente manera:

>>> import numpy as np
>>> import scipy
>>> import brian2
>>> np.test()
>>> scipy.test()
>>> brian2.test()

Todas las pruebas pasan.

Ahora me gustaría hacer lo mismo en el grupo informático de mi laboratorio. Nuevamente instalé todas las versiones correctas. Sin embargo, en este nuevo entorno, sólo pasan las pruebas numpyy . brian2Para scipy, falla una sola prueba:

====================================================================== 
FAIL: test_decomp_update.TestQRdelete_f.test_delete_last_p_col
----------------------------------------------------------------------     
Traceback (most recent call last):   File
"/usr/local/anaconda/lib/python2.7/site-packages/nose/case.py", line
197, in runTest
    self.test(*self.arg)   File "/home/despo/dbliss/lib/python2.7/site-packages/scipy/linalg/tests/test_decomp_update.py",
line 328, in test_delete_last_p_col
    assert_unitary(q1)   File "/home/despo/dbliss/lib/python2.7/site-packages/scipy/linalg/tests/test_decomp_update.py",
line 21, in assert_unitary
    assert_allclose(aTa, np.eye(a.shape[1]), rtol=rtol, atol=atol)   File
"/home/despo/dbliss/.local/lib/python2.7/site-packages/numpy/testing/utils.py",
line 1297, in assert_allclose
    verbose=verbose, header=header)   File "/home/despo/dbliss/.local/lib/python2.7/site-packages/numpy/testing/utils.py",
line 665, in assert_array_compare
    raise AssertionError(msg) AssertionError:  Not equal to tolerance rtol=0.0001, atol=2.38419e-07

(mismatch 100.0%)  x: array([[  9.999999e-01,   1.746230e-08, 
-1.490116e-08,   1.490116e-08,
         -6.146729e-08,  -6.332994e-08,   3.352761e-08,   7.450581e-08,
          3.352761e-08,   2.142042e-08,  -4.097819e-08,   4.656613e-08],...  y: array([[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],...

---------------------------------------------------------------------- 
Ran 18599 tests in 253.381s

FAILED (KNOWNFAIL=97, SKIP=1165, failures=1)

Aparentemente, la única diferencia relevante entre mi grupo informático y mi computadora portátil son las versiones de Python que ejecutan. Mi computadora portátil tiene la versión 2.7.6, mientras que el clúster tiene la 2.7.10.

Mi pregunta es, ¿cómo puedo instalar la versión 2.7.6 localmente en el clúster (es decir, localmente en mi cuenta) y luego usar esa versión cuando abro IPython?

Respuesta1

Respuesta directa a su pregunta: use virtualenv como se explica aquí:https://stackoverflow.com/questions/5506110/es-es-posible-instalar-otra-versión-de-python-to-virtualenv

Sin embargo, su conclusión probablemente sea incorrecta porque numpy, scipy y brian2 dependen de muchos otros bits del sistema, no solo de la versión de Python, y esos bits probablemente también sean diferentes.

Lo que debería hacer es usar numpy y scipy que vienen con la distribución anaconda python, ya que presumiblemente han sido probados. Brian2 no está incluido. Tendrás que probarlo tú mismo.

información relacionada