使用Gunicorn部署项目时找不到flask_script模块,测试环境正常
Gunicorn部署时找不到flask_script模块的解决办法
看起来你碰到了部署时常见的环境不一致问题——测试环境跑的好好的,一用Gunicorn就找不到flask_script模块,我来帮你梳理几个大概率能解决的方向:
先把你的报错信息贴出来方便参考:
Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/usr/lib/python2.7/site-packages/gunicorn/workers/base.py", line 129, in init_process self.load_wsgi() File "/usr/lib/python2.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgiapp self.wsgi = self.app.wsgi() File "/usr/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load return self.load_wsgiapp() File "/usr/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/lib/python2.7/site-packages/gunicorn/util.py", line 350, in import_app __import__(module) File "/home/iHome_Flask/ihome_pyhon02/manage.py", line 4, in <module> from flask_script import Manager ImportError: No module named flask_script [2018-05-23 09:15:46 +0000] [29933] [INFO] Worker exiting (pid: 29933) [2018-05-23 09:15:46 +0000] [29928] [INFO] Shutting down: Master [2018-05-23 09:15:46 +0000] [29928] [INFO] Reason: Worker failed to boot. (flask_py2) [root@iZbp1bvf97jli08phztpplZ ihome_pyhon02]# vim manage.py
常见解决思路
1. 让Gunicorn使用你的虚拟环境
从报错路径能看出来,当前Gunicorn用的是系统自带的Python2.7,但你明明有flask_py2这个虚拟环境,这就是核心问题——环境不匹配。解决办法:
- 直接调用虚拟环境里的Gunicorn启动项目:
/home/iHome_Flask/flask_py2/bin/gunicorn -w 4 manage:app - 或者先激活虚拟环境再启动Gunicorn:
source /home/iHome_Flask/flask_py2/bin/activate gunicorn -w 4 manage:app
2. 检查虚拟环境的依赖完整性
有可能你的虚拟环境里压根没装flask_script,或者依赖有缺失。激活虚拟环境后重新安装:
source /home/iHome_Flask/flask_py2/bin/activate pip install flask-script # 如果有requirements.txt文件,更稳妥的方式是一次性安装所有依赖 pip install -r requirements.txt
3. 确保在项目根目录启动Gunicorn
如果启动Gunicorn时不在项目根目录,可能会导致Python找不到模块路径。先切换到项目目录再操作:
cd /home/iHome_Flask/ihome_pyhon02/ source ../flask_py2/bin/activate gunicorn manage:app
一般来说,前两个方法就能解决你的问题,优先试试用虚拟环境的Gunicorn启动,应该就能找到flask_script模块了。
内容的提问来源于stack exchange,提问作者1am9a09e
相关产品推荐
相关产品推荐

