Django与numpy,错误:无法导入名称多阵列

时间:2014-12-03 09:37:15

标签: django python-3.x numpy virtualenv

我使用mod_wsgi在针对Python 3.4的虚拟环境中运行Django。我有numpy 1.9并且我收到了这个错误:

**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建议

2 个答案:

答案 0 :(得分: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
  5. 瞧!

答案 1 :(得分:0)

您应该调整Apache和/或mod_wsgi配置。

在您展示的行中,可以看到正在使用Python 2.7,但它正在与来自Python 3.4虚拟环境的包结合使用。这是完全错误的,应予以解决。

要解决这个问题,最简单的方法是使用以下python二进制文件:

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

而不是默认

/usr/bin/python

使用显式虚拟环境二进制文件是这种情况下的方法(至少,它在很多类似的场景中对我有用)。