python3.7环境下sanic-ext未生效踩坑解析
作者:lvzi 发布时间:2022-06-30 12:56:35
标签:python,环境,sanic-ext,未生效
坑:
在python3.7环境下,通过官方文档安装sanic即扩展插件,但是 sanic-ext
包不起作用,具体的表现为:无法打开路由/docs
。
这里的坑在于,服务启动时,sanic不会报错。因此很难定位出问题在sanic-ext。
原因:
寻找sanic-ext不起作用的原因:
首先在虚拟环境中执行import sanic_ext
结果报错,提示缺少importlib.metadata
查询当前环境下importlib.metadata
的版本,发现在python3.7下importlib.metadata=4.2
由于本人曾在python3.8环境可以正常使用sanic-ext
,所以进入python3.8环境下检查发现importlib.metadata=3.10.0
结论:
python3.7下的importlib.metadata
版本与sanic-ext不匹配,导致其无法起作用
回过头看:
虽然sanic-ext
不会报错,但其实sanic-ext
是否生效是有迹可循的,在sanic启动时,会有一串打印信息,可以通过打印信息中的packages
中是否包含sanic-ext
判断sanic-ext
是否正确生效。
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Sanic v22.9.0 │
│ Goin' Fast @ http://0.0.0.0:12345 │
├───────────────────────┬─────────────────────────────────────────────────────────────────────────────────┤
│ │ mode: debug, single worker │
│ ▄███ █████ ██ │ server: sanic, HTTP/1.1 │
│ ██ │ python: 3.8.8 │
│ ▀███████ ███▄ │ platform: Linux-4.15.0-189-generic-x86_64-with-glibc2.10 │
│ ██ │ auto-reload: enabled, /xx/xx/xx │
│ ████ ████████▀ │ packages: sanic-routing==22.8.0, sanic-ext==22.9.0 │
│ │ │
│ Build Fast. Run Fast. │ │
后记
python3.7的importlib.metadata
高于python3.8的,不符合直觉,可能是装其他东西更新了这个包,所以也许不是python3.7与sanic-ext
不适配,这点有待继续验证,更多关于python3.7环境sanic-ext未生效的资料请关注脚本之家其它相关文章!
来源:https://juejin.cn/post/7193603855504900152


猜你喜欢
- 关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。1. 动态语言又叫动态编程语言,是指程序在运行时可以改变其结构
- 我们很多时候,特别是在生成任务的时候,都需要一个唯一标识字符串来标识这个任务,比较常用的有生成uuid或者通过时间来生成。uuid的话可以直
- 一个网站空间,但是却可以实现多个域名的访问的一段ASP代码:<%if Request.ServerVariables("SE
- gchart:基于google图表API的jquery组件全攻略——入门gchart是基于google图表API的jquery组件。使用gc
- 打开网页,然后将javascript:document.body.contentEditable='true';
- 这篇文章主要介绍了Python计算不规则图形面积算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 写在前面最近每日一更,我这菜鸡都有点儿不好意思了简单介绍简单用法是:assert expression让我们用程序来测试这个expressi
- Office家族成员中,人们对于Access 2000的了解,往往只局限在它的操作界面中,对于数据库管理的功能仍只是停留在建立表、数据输入、
- vsCode是什么Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几
- 本文实例讲述了python版本的读写锁操作方法。分享给大家供大家参考,具体如下:最近要用到读写锁的机制,但是python2.7的自带库里居然
- 一、super函数简介python内置函数super()主要用于类的多继承中,用来查找并调用父类的方法,所以在单重继承中用不用 super
- 上次介绍了Access 导入 MSSQL 2000/2005 数据库工具,不过,在使用这个工具时还是有一些地方需要注意的,我把整个导入过程记
- Pytorch如何完成多分类多分类问题在最后的输出层采用的Softmax Layer,其具有两个特点:1.每个输出的值都是在(0,1);2.
- 总体跟官方样例相似,但是官方样例因为部分代码有误无法运行,同时需要了解json,以及前后端知识需要一些时间,因此供大家参考。这个是views
- rfind()方法返回所在子str 被找到的最后一个索引,或者-1,如果没有这样的索引不存在,可选择限制搜索字符串string[
- 1.安装python3yum -y install wget gcc make zlib-devel readline-devel bzip
- 数据库分类早期数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,通常把数据库分为两类,即关系型数据库和非
- 本文介绍了webpack对样式的处理,分享给大家,具体如下:我们可以在js中引入样式文件require('myStyle.css
- 之前有写过一篇浏览器的tab设计,这回说说网站的tab设计。一说到tab很自然地就想到了导航、信息架构。随着网站信息结构的复杂化,选择tab
- 使用VScode的用户代码片段功能,来生成自己习惯的代码模板,提升开发效率1.选择菜单里的 文件 > 首选项 > 用户代码片段2