作为一个WSGI服务,gunicorn可以通过多种方式安装到系统种。gunicorn官方文档建议debain极其衍生版本系统直接利用系统的包管理能力安装,此时安装位置会在
- apt 安装位置:
/usr/lib/pythonX/dist-packages
- pip 安装位置:
/usr/local/lib/pythonX/dist-packages
如果是自行构建的python安装的位置会在
/usr/local/lib/pythonX/site-packages
主要区别在“dist-packages”与“site-packages”。
debain官方WIKI里给出了说明:
从Debian包安装的第三方Python软件安装在dist-packages,而不是site-packages. 这样可以减少系统Python与用户人工从源码进行的任何Python构建间的冲突
两种安装方式安装后均可以通过
gunicorn [OPTIONS] [APP_MODULE]
使用
但如果涉及到在程序中直接使用gunicorn
,或者使用了web框架,框架内本身对gunicorn
进行了集成,如果环境配置有问题在启动程序是可能会出现错误
ModuleNotFoundError: No module named 'gunicorn'
该问题的出现是由于Python的Path里没有gunicorn,这种情况可能出现在包安装来源不一致的环境,混用系统包级别的安装和用户自己的python构建,Path里配置的安装包位置缺少包含所需模块gunicorn的“dist-packages”或者“site-packages”。
该情况不只限于gunicorn
,其它Python包安装时也遵循该规律。一种解决办法时修改Python Path, 在sys.path
加上相应路径;另一种解决办法是使用当前所用Python环境的安装机制安装所需包,确保默认的Python Path里面有所需模块。