2016-07-01 42 views
0

我很久以前用python和pip遇到過一些問題,我不記得究竟是什麼。現在這讓我困擾:python3 -m pip show scipy返回Version: 0.17.1但是當我啓動一個Python解釋器python3import scipyscipy.__version__返回0.13.3。很明顯,當我運行一些腳本時,我有這個版本相關問題:Python解釋器和pip給出了不同版本的模塊

ImportError: No module named 'scipy.lib.decorator' 

我該怎麼辦?非常感謝,

+0

確實,我應該說明它:我已經嘗試過python3 -m pip install - 升級scipy,因爲scipy看到的版本已經是最新版本了,所以沒有任何改變。 –

回答

0

聽起來好像安裝了兩個版本的scipy,而sys.path先找到了舊版本。在Python3解釋器類型中:

>>> import scipy 
>>> scipy.__version__ 
'0.18.0.dev0+4a89f2d' 
>>> scipy.__file__ 
'/home/unutbu/.virtualenvs/muffy/lib/python3.4/site-packages/scipy/__init__.py' 

最後一行顯示找到加載的scipy軟件包的目錄。 以上,該目錄是

/home/unutbu/.virtualenvs/muffy/lib/python3.4/site-packages/ 

檢查的等效目錄你的機器上同時爲0.13和0.17版本SciPy的的。如果您對這兩個存在感到滿意,並且您不需要scipy目錄的0.13版本,請繼續並將其刪除。如果軟件包管理器安裝了0.13版本,請務必使用相同的軟件包管理器將其刪除,以便軟件包管理器將保持與系統狀態保持同步。

+0

竅門,謝謝!我在'/ usr/lib/python3.4 /'中有一個版本,'/ usr/local/lib/dist-packages /'中有一個版本。我刪除了第一個,一切正常。 –

+0

糟糕!我錯誤地認爲這兩個版本都是手動安裝的。 如果'/ usr/lib'中的scipy版本是由包管理器(例如'apt-get'或'yum')安裝的,那麼您應該使用包管理器來移除安裝了'scipy'的包' USR/lib'。例如,在Ubuntu上使用'sudo apt-get remove python3-scipy'。這將使軟件包管理器及時瞭解軟件包的狀態。 – unutbu

相關問題