2014-12-03 18 views
7

Tôi đang chạy Django tại môi trường ảo nhắm mục tiêu Python 3.4 bằng cách sử dụng mod_wsgi. Tôi có NumPy 1.9 và tôi nhận được lỗi này:Django với numpy, Lỗi: không thể nhập tên 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** 

lời khuyên Plesae

+0

Đợi một chút, tại sao tôi thấy: 'Phiên bản Python: 2.7.5'? – Marcs

+0

Không có ý tưởng ... Tôi chạy apache và nó là như vậy – user903772

+0

Bạn đã đặt con đường Python của môi trường ảo của bạn? – shellbye

Trả lời

0

Trước tiên, bạn cần chắc chắn rằng bạn đang ở trong môi trường thích hợp, nơi bạn cài đặt NumPy, Django vv Căn cứ vào quy định của bạn thông tin, tôi giả sử bạn có virtualenv và hiện đang phát triển ứng dụng của mình. Nếu giả định là đúng, bạn có thể làm theo các bước này.

Bạn không cần Apache cho việc này.

  1. Nguồn bạn virtualenv, source /path/to/env/bin/activate và chuyển đến thư mục dự án của bạn.
  2. Đảm bảo bạn có tất cả các gói bạn cần, pip freeze sẽ hiển thị cho bạn, cài đặt nếu cần.
  3. Chạy được xây dựng trong máy chủ từ Django, python manage.py runserver
  4. Đến trình duyệt của bạn: http://localhost:8000

Voila!

+0

Có, bạn là đúng, nhưng chỉ sử dụng manage.py để bắt đầu máy chủ web. Tôi có thông báo lỗi tương tự, nhưng sau khi bắt đầu httpd (tôi chắc chắn rằng tôi có một virtualenv). Bất cứ ai cũng có thể giải thích điều này? – FavorMylikes

+0

"Bạn không cần Apache" là một sự khẳng định mạnh mẽ. Ý tôi là, nếu bạn không muốn có trang web trong sản xuất, vâng, không cần Apache. Nhưng nếu bạn muốn trang web được "sản xuất", sau đó chắc chắn chạy trốn khỏi 'runserver'. – MariusSiuram

0

Bạn nên tinh chỉnh cấu hình Apache và/hoặc mod_wsgi của mình.

Trong các dòng bạn hiển thị, người ta có thể thấy rằng một Python 2.7 đang được sử dụng nhưng đang được kết hợp với các gói từ môi trường ảo của Python 3.4. Điều đó hoàn toàn sai và cần được giải quyết.

Để khắc phục điều đó, cách đơn giản nhất là sử dụng hệ nhị phân python sau:

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

thay vì mặc định

/usr/bin/python 

Sử dụng nhị phân môi trường ảo rõ ràng là con đường để đi trong những tình huống (ít nhất, nó đã làm việc cho tôi trong rất nhiều kịch bản tương tự).

Các vấn đề liên quan