2014-12-03 76 views
7

我在使用mod_wsgi的Python 3.4的虛擬環境中運行Django。我有numpy的1.9和我得到這個錯誤:Django與numpy,錯誤:無法導入名稱multiarray

**Request Method: GET 
Django Version: 1.7.1 
Exception Type: ImportError 
Exception Value:  
cannot import name multiarray 
Exception Location: /var/www/mapsite/lib/python3.4/site-packages/numpy/core/__init__.py in <module>, line 6 
Python Executable: /usr/bin/python 
Python Version: 2.7.5 
Python Path:  
['/var/www/mapsite/lib/python3.4/site-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/var/www/mysite'] 
Server time: Wed, 3 Dec 2014 09:07:24 +0000** 

Plesae建議

+0

等一下,爲什麼我看到:'Python Version:2.7.5'? – Marcs 2014-12-03 09:41:21

+0

不知道...我運行apache,它是這樣 – user903772 2014-12-03 09:44:01

+0

你是否設置了你的虛擬環境的Python路徑? – shellbye 2014-12-03 09:45:41

回答

0

首先,你需要確保你是在您安裝numpy的合適的環境,Django的,等你的基礎上提供信息,我假設你有一個virtualenv並正在開發你的應用程序。如果這個假設是正確的,你可以按照這個步驟。

你不需要Apache。

  1. 來源你virtualenv,source /path/to/env/bin/activate並轉到你的項目目錄。
  2. 確保你有你需要的所有包裹,pip freeze會告訴你,如有必要安裝。
  3. 運行內置在從Django的服務器,python manage.py runserver
  4. 轉到您的瀏覽器:http://localhost:8000

瞧!

+0

是的,你是對的,但只使用manage.py來啓動web服務器。我有相同的錯誤信息,但啓動httpd後(我確信我有一個virtualenv)。任何人都可以解釋這個 – FavorMylikes 2017-02-10 16:20:34

+0

「你不需要Apache」是一個強烈的肯定。我的意思是,如果你不想在生產網站,是啊,不需要Apache。但是,如果你想讓該網站成爲「製作」,那麼肯定會從'runserver'逃跑。 – MariusSiuram 2017-12-19 10:24:45

0

你應該調整你的Apache和/或mod_wsgi配置。

在您展示的代碼中,可以看到正在使用Python 2.7,但正在與來自Python 3.4虛擬環境的軟件包結合使用。這是完全錯誤的,應該加以解決。

爲了解決這個問題,最簡單的方法是使用下面的Python二進制:

/var/www/mapsite/bin/python3.4 

,而不是默認

/usr/bin/python 

使用顯式虛擬環境的二進制代碼用那些要走的路情況(至少,它在很多類似的情況下適用於我)。

相關問題