【发布时间】:2017-10-08 03:47:10
【问题描述】:
我正在尝试在烧瓶 __init__.py 导入 numpy,但它给出了这个错误:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
当我从烧瓶 __init__.py 中删除导入时,一切正常。
当我在 virtualenv 中执行 from numpy.core import multiarray 时,一切正常,但从 wsgi 导入它不起作用。
这里是 apache/站点可用的配置文件:
<VirtualHost *:80>
ServerName 192.168.0.1
ServerAdmin hello@world.com
WSGIScriptAlias / /home/bar/FlaskApp/FlaskApp/FlaskApp.wsgi
<Directory /home/bar/FlaskApp/FlaskApp/>
Require all granted
</Directory>
Alias /static /home/bar/FlaskApp/FlaskApp/static
<Directory /home/bar/FlaskApp/FlaskApp/static/>
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
WSGIDaemonProcess FlaskApp python-path=/home/bar/FlaskApp:/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages
WSGIProcessGroup FlaskApp
这里是wsgi文件:
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/home/bar/FlaskApp")
from FlaskApp import app as application
application.secret_key = 'FlaskApp'
谢谢
附加信息:
我在导入其他模块(如 pandas、flask 或 os)时没有问题。
最初我导入熊猫所以错误来自熊猫依赖错误。
来自/var/log/apache/error.log:
Traceback (most recent call last):
File "/home/bar/FlaskApp/FlaskApp/FlaskApp.wsgi", line 7, in <module>
from FlaskApp import app as application
File "/home/bar/FlaskApp/FlaskApp/__init__.py", line 3, in <module>
from myscript import myclass
File "/home/bar/FlaskApp/FlaskApp/myscript.py", line 1, in <module>
import pandas as pd
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/pandas/__init__.py", line$
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']
这是我尝试直接从__init__.py 导入 numpy 时的错误日志:
Traceback (most recent call last):
File "/home/bar/FlaskApp/FlaskApp/FlaskApp.wsgi", line 7, in <module>
from FlaskApp import app as application
File "/home/bar/FlaskApp/FlaskApp/__init__.py", line 3, in <module>
import numpy as np
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/__init__.py", line 142, in <module>
from . import add_newdocs
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/core/__init__.py", line 24, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
当我尝试在 python 会话中将 numpy 导入 venv 时,它可以正常工作。
(venv) bar@bar:~/FlaskApp/FlaskApp$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> from numpy.core import multiarray
>>> multiarray.__file__
'/home/bar/FlaskApp/FlaskApp/venv/lib/python3.5/site-packages/numpy/core/multiarray.cpython-35m-x86_64-linux-gnu.so'
>>>
【问题讨论】:
标签: python numpy flask import virtualenv