当我试图运行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中,但这似乎没有任何效果。
奇怪的是,使用python2.7似乎一切正常。
发布于 2021-01-01 19:51:28
对于被困的人,您可以使用以下方法:
from . import parse_data发布于 2022-03-11 23:30:53
我击中了这个确切的问题,很难找到!
我不知道您是如何初始化uWSGI实例的,但这在这里似乎很关键。
我的文件夹结构和你略有不同。我将导入的模块放在自己的子文件夹中,如下所示:
myapp
|-- src
| |-- __init__.py
| |-- app.py
| |-- parse_data
| | |-- __init__.py
| | `-- parse_data.py
| |-- static
| `-- templates
`-- wsgi.py我能够通过将app.py的位置添加到uWSGI中的"pythonpath“配置来解决这个问题。
我使用的是uwsgi.ini配置文件,而不是wsgi.py。修复后,我的配置文件如下所示:
chdir = /path/to/myapp
plugin = python
wsgi-file = ./src/app.py
callable = app
; Next line is the fix
pythonpath = ./src就您的情况而言,我认为这意味着您的wsgi.py需要增加一行:
sys.path.append('/var/www/myapp/src')https://stackoverflow.com/questions/43521672
复制相似问题