0

venv の下で numpy と scipy を最新バージョンにアップグレード/インストールするのに苦労しています。アップグレードしたい理由は、venv でスクリプトを実行したときのエラーです。

(venv)[malapradej@lotus Code]$ python2.7 create_emulator_ap_680-755.py --sza 80 --vza 80 --raa 180 --train /work/scratch/malapradej/DASF/Data/LUT_ap/lhd250_train_ap1 --validate /work/scratch/malapradej/DASF/Data/LUT_ap/lhd300_valid_ap1 --plot n

RuntimeError: module compiled against API version 9 but this version of numpy is 7
Traceback (most recent call last):
  File "./create_emulator_ap_680-755.py", line 57, in <module>
    import gp_emulator
  File "/home/users/malapradej/venv/lib/python2.7/site-packages /gp_emulator/__init__.py", line 3, in <module>
    from multivariate_gp import MultivariateEmulator
  File "/home/users/malapradej/venv/lib/python2.7/site-packages/gp_emulator/multivariate_gp.py", line 32, in <module>
    import h5py
  File "/home/users/malapradej/venv/lib/python2.7/site-packages/h5py/__init__.py", line 23, in <module>
    from . import _conv
  File "h5py/h5t.pxd", line 14, in init h5py._conv (/tmp/pip-build-JA5F4M/h5py/h5py/_conv.c:6970)
  File "h5py/h5t.pyx", line 1, in init h5py.h5t (/tmp/pip-build-JA5F4M/h5py/h5py/h5t.c:19707)
ImportError: numpy.core.multiarray failed to import

venvの下で私は走った:

pip install -Iv numpy==1.10.1

pip install -Iv --upgrade numpy==1.10.1

終了するたびに:

Successfully installed numpy-1.7.0
Cleaning up...

使用されているパッケージを確認するために yolk を使用すると、次のようになります。

yolk -l | grep numpy

numpy           - 1.10.1       - non-active
numpy           - 1.7.0        - active development (/usr/lib/python2.7/site-packages)
numpy           - 1.9.2        - non-active

パッケージをダウンロードしたようですが、アップグレードもアクティブ化もしません。

ipython を実行すると、うまくいくようです:

In [1]: import numpy as np

In [2]: print np.__version__
1.10.1

ただし、python2.7 では以前のバージョンが表示されます。

(venv)[malapradej@cems-sci1 venv]$ python2.7

>>> import numpy as np
>>> np.__version__
'1.7.0'

scipy も同様です。

大変感謝しております。

4

1 に答える 1

0

私が持っていた唯一の代替手段は、古いvirtualenvを削除し、を使用して再インストールしvirtualenv --system-site-packages ~/venv 、すべてのパッケージを再度使用することpip install --upgrade <package>でした。どこかで venv が破損したようで、これがどこで発生したかを突き止めようとすると時間がかかりすぎたようです。

于 2015-12-02T14:45:23.340 に答える