Flask uwsgi配置时,找不到flask模块,virtualenv已配置

发布于 09-07 03:29 字数 3466 浏览 21 评论 0

我用flask框架写了一个简单的后台,项目是pycharm写的,开发的时候虚拟环境是由pycharm自动配置的,项目目录如下。

  • app

    • __init__.py
    • match

      • __init__.py
      • views.py
    • user

      • __init__.py
      • views.py
  • static
  • venv
  • config.py
  • manage.py

match和user是两个蓝图,app的运行放在最顶级的manage.py当中。
开发的时候没有任何问题,pycharm能够正常的调试,但准备部署到服务器上时出现了问题。
采用Nginx + uWSGI 的方式部署,我用git将目录下载到服务器后,新建虚拟环境

pip install -r requirtment.txt

安装依赖环境。文件内容如下:

aniso8601==3.0.0
certifi==2018.4.16
chardet==3.0.4
click==6.7
crcmod==1.7
Flask==0.12.2
Flask-RESTful==0.3.6
Flask-SQLAlchemy==2.3.2
idna==2.6
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
oss2==2.4.0
PyMySQL==0.8.0
pytz==2018.4
requests==2.18.4
six==1.11.0
SQLAlchemy==1.2.6
urllib3==1.22
Werkzeug==0.14.1

安装完后pip安装 uwsgi,新建配置文件如下:

[uwsgi]
socket = 127.0.0.1:8000

# 指向项目目录
chdir = /data/Dudu/
plugins=python34

home = /data/Dudu/env/
vhost = true

no-site=true

# flask启动程序文件
wsgi-file =manage.py

# flask在manage.py文件中的app名
callable = app

# 处理器数
processes = 1

# 线程数
threads = 2

#状态检测地址

uid = root
gid = root

nginx是之前配置好的,能够502跳转。
运行uwsgi,出错
pythonpath=/data/Dudu/env/lib/python3.4/site-packages

*** Operational MODE: threaded ***
Traceback (most recent call last):
  File "manage.py", line 1, in <module>
    from app import app_create
  File "./app/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named 'flask'
unable to load app 0 (mountpoint='') (callable not found or import error)

各种查询,加了一个设置:
added /data/Dudu/env/lib/python3.4/site-packages/ to pythonpath.
依然报错:



added /data/Dudu/env/bin/python3 to pythonpath.
Traceback (most recent call last):
  File "manage.py", line 1, in <module>
    from app import app_create
  File "./app/__init__.py", line 1, in <module>
    from flask import Flask
  File "/data/Dudu/env/lib/python3.4/site-packages/flask/__init__.py", line 17, in <module>
    from werkzeug.exceptions import abort
  File "/data/Dudu/env/lib/python3.4/site-packages/werkzeug/__init__.py", line 151, in <module>
    __import__('werkzeug.exceptions')
  File "/data/Dudu/env/lib/python3.4/site-packages/werkzeug/exceptions.py", line 67, in <module>
    from werkzeug._internal import _get_environ
  File "/data/Dudu/env/lib/python3.4/site-packages/werkzeug/_internal.py", line 12, in <module>
    import string
ImportError: No module named 'string'
unable to load app 0 (mountpoint='') (callable not found or import error)

这两天已经看完了几乎所有相关问题的解答,虚拟环境下各种包也是装了又装,依然没有解决。服务器是centos,python3.4/2.7环境,之前运行过一个flask项目,能够正常运行,现在就是找不到flask模块,真的很迷。望各位大佬指教。
manage.py:

from app import app_create
app=app_create()


if __name__ == '__main__':
    app.run(port = 8000)
~

app/__init__.py

from flask import Flask
import config
from .models import db

def app_create():
    from .match  import match as  match_blueprint
    from .user   import user  as  user_blueprint
    app = Flask(__name__)
    app.config.from_object(config)
    app.secret_key='1234'
    db.init_app(app)
    app.register_blueprint(match_blueprint)
    app.register_blueprint(user_blueprint)
    return app
~

大佬们,帮帮菜鸟,万分感谢啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如果没有你2022-09-14 03:29:28

第一种方法,把 uwsgi.ini 文件里的 = 两边的空格都去掉。

如果第一种方法不行,那么推荐你看看第二种的方法,也就是我的项目里的配置方法。

https://github.com/eastossifr...

还有可以参考我回答过的问题

https://segmentfault.com/q/10...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文