认清Python包的安装位置是dist-packages还是site-packages避免ModuleNotFoundError

作为一个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里面有所需模块。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值