(Возможно, установка и) использование определенной версии Python

(Возможно, установка и) использование определенной версии Python

Для научного приложения мне нужно использовать определенные версии пакетов Python numpy, scipy, и brian2. Я установил нужные версии на свой ноутбук и запустил их тестовые наборы следующим образом:

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

Все тесты пройдены.

Теперь я хотел бы сделать то же самое на вычислительном кластере моей лаборатории. Я снова установил все правильные версии. Однако в этой новой среде проходят только тесты numpyи . Для один тест не проходит:brian2scipy

====================================================================== 
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)

Похоже, единственное существенное различие между моим вычислительным кластером и моим ноутбуком — это версии Python, которые они используют. На моем ноутбуке установлена ​​версия 2.7.6, тогда как на кластере — 2.7.10.

У меня вопрос: как мне установить версию 2.7.6 локально на кластере (т. е. локально для моей учетной записи), а затем использовать эту версию при открытии IPython?

решение1

Прямой ответ на ваш вопрос: используйте virtualenv, как описано здесь:https://stackoverflow.com/questions/5506110/is-it-possible-to-install-another-version-of-python-to-virtualenv

Однако ваш вывод, вероятно, неверен, поскольку numpy, scipy и brian2 зависят от многих других частей системы, а не только от версии python, и эти части, вероятно, тоже отличаются.

Вам следует использовать numpy и scipy, которые поставляются с дистрибутивом anaconda python, поскольку они, по-видимому, были протестированы. brian2 не включен. Вам придется протестировать это самостоятельно.

Связанный контент