我在尝试运行ImportError: No module named 'parse_data’
时收到错误python wsgi.py
。
当我手动调用它时,应用程序运行正常:
$/var/www/myapp# python src/app.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
文件夹结构如下:
myapp
|-- src
| |-- __init__.py
| |-- app.py
| |-- parse_data.py
| |-- static
| `-- templates
`-- wsgi.py
wsgi.py的内容
import os
import sys
PROJECT_DIR = '/var/www/myapp'
sys.path.insert(0, PROJECT_DIR)
sys.path.append('/var/www/myapp/app')
def execfile(filename):
globals = dict( __file__ = filename )
exec( open(filename).read(), globals )
activate_this = os.path.join( PROJECT_DIR, 'pyenv/bin', 'activate_this.py' )
execfile( activate_this )
from src.app import app as application
app.py的内容
from flask import Flask
from flask import render_template, url_for
import sys
import parse_data
app = Flask(__name__)
@app.route("/dashboard")
def dashboard():
data = parse_data.load_and_format_data()
title = 'My application'
return render_template('dashboard.html', data=data, heading=title, page_title=title)
if __name__ == "__main__":
app.run()
我看不出有什么问题。将import parse_data
更改为from src import parse_data
会使wsgi正常工作,但会导致python src/app.py
中断。
我尝试将sys.path.append('/var/www/myapp')
添加到wsgi.py但这似乎没有任何效果。
奇怪的是,使用python 2.7,一切似乎都能正常工作。
答案 0 :(得分:0)
对于卡住的人,可以使用以下方法:
from . import parse_data