鍍金池/ 問答/Python  數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ Flask uwsgi配置時,找不到flask模塊,virtualenv已配置

Flask uwsgi配置時,找不到flask模塊,virtualenv已配置

我用flask框架寫了一個簡單的后臺,項目是pycharm寫的,開發(fā)的時候虛擬環(huán)境是由pycharm自動配置的,項目目錄如下。

  • app

    • __init__.py
    • match

      • __init__.py
      • views.py
    • user

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

match和user是兩個藍(lán)圖,app的運行放在最頂級的manage.py當(dāng)中。
開發(fā)的時候沒有任何問題,pycharm能夠正常的調(diào)試,但準(zhǔn)備部署到服務(wù)器上時出現(xiàn)了問題。
采用Nginx + uWSGI 的方式部署,我用git將目錄下載到服務(wù)器后,新建虛擬環(huán)境

pip install -r requirtment.txt

安裝依賴環(huán)境。文件內(nèi)容如下:

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

# 處理器數(shù)
processes = 1

# 線程數(shù)
threads = 2

#狀態(tài)檢測地址

uid = root
gid = root

nginx是之前配置好的,能夠502跳轉(zhuǎn)。
運行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)

各種查詢,加了一個設(shè)置:
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)

這兩天已經(jīng)看完了幾乎所有相關(guān)問題的解答,虛擬環(huán)境下各種包也是裝了又裝,依然沒有解決。服務(wù)器是centos,python3.4/2.7環(huán)境,之前運行過一個flask項目,能夠正常運行,現(xiàn)在就是找不到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
~

大佬們,幫幫菜鳥,萬分感謝啊

回答
編輯回答
柚稚

第一種方法,把 uwsgi.ini 文件里的 = 兩邊的空格都去掉。

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

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

還有可以參考我回答過的問題

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

2018年6月4日 11:24