环境:windows7 + python3.6.0

在尝试使用python的flask时,按照flask的tutorial操作,装好flask、venv后,对tutorial中的hello.py进行运行时发现了markupsafe._compat包缺失的问题

如下:

 G:\Work\pythonMain>venv\Scripts\activate

 (venv) G:\Work\pythonMain>set FLASK_APP=hello.py

 (venv) G:\Work\pythonMain>flask run
Traceback (most recent call last):
File "e:\python\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "e:\python\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "E:\python\Scripts\flask.exe\__main__.py", line 5, in <module>
File "e:\python\lib\site-packages\flask\__init__.py", line 19, in <module>
from jinja2 import Markup, escape
File "e:\python\lib\site-packages\jinja2\__init__.py", line 33, in <module>
from jinja2.environment import Environment, Template
File "e:\python\lib\site-packages\jinja2\environment.py", line 15, in <module> from jinja2 import nodes
File "e:\python\lib\site-packages\jinja2\nodes.py", line 19, in <module>
from jinja2.utils import Markup
File "e:\python\lib\site-packages\jinja2\utils.py", line 624, in <module>
from markupsafe import Markup, escape, soft_unicode
File "e:\python\lib\site-packages\markupsafe\__init__.py", line 14, in <module
>
from markupsafe._compat import text_type, string_types, int_types, \
ModuleNotFoundError: No module named 'markupsafe._compat'

使用 pip freeze 查看已安装的包时,markupsafe 和 jinja2都是已安装的状态

我将这两个包反复卸载再安装也并没有得到解决

在网上没有找到解决方案的时候,看见有一些 _compat.py 的文件内容如下:

附上网址:

https://chromium.googlesource.com/infra/third_party/MarkupSafe/+/188802ce86879aafc3472619ce82ae1768210d83/markupsafe/_compat.py

https://www.apt-browse.org/browse/debian/jessie/main/amd64/python3-markupsafe/0.23-1+b1/file/usr/lib/python3/dist-packages/markupsafe/_compat.py

 # -*- coding: utf-8 -*-
"""
markupsafe._compat
~~~~~~~~~~~~~~~~~~
Compatibility module for different Python versions.
:copyright: (c) 2013 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
"""
import sys
PY2 = sys.version_info[0] == 2
if not PY2:
text_type = str
string_types = (str,)
unichr = chr
int_types = (int,)
iteritems = lambda x: iter(x.items())
else:
text_type = unicode
string_types = (str, unicode)
unichr = unichr
int_types = (int, long)
iteritems = lambda x: x.iteritems()

对照之下,两个网址上的这个文件内容是一样的,我在python的文件中找到markupsafe文件夹,文件夹内并没有这个文件。

虽然我并不知道为什么没有装上,但本着尝试的心态就自己在该目录下新建了个python文件,并把这个内容复制了进去,于是成功解决了我的问题。

本地目录是python目录下的:Lib\site-packages\markupsafe\

 (venv) G:\Work\pythonMain>flask run
* Serving Flask app "hello"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

所以嘛,正所谓:没有文件,新建文件也要上

python中使用flask时遇到的markupsafe._compat包缺失的问题与解决的更多相关文章

  1. 如何解决python中使用flask时遇到的markupsafe._compat包缺失的问题

    在使用python进行GUI的程序编写时,使用flask时出现错误: 在使用pip freeze进行查看已下载的包时显示MarkupSafe与Jinjia2都已安装: 在网上查阅一些资料后发现,在py ...

  2. Python中使用Flask、MongoDB搭建简易图片服务器

    主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...

  3. 在Python中写入文件时,权限被拒绝错误

    我想创建一个文件并在python中写一些整数数据.例如,我有一个变量abc = 3,我试图将它写入一个文件(它不存在,我假设python将自己创建): fout = open("newfil ...

  4. python中json序列化时汉字变成编码的解决方式

    我们在使用json模块时,如果被序列化对象中不包含汉字,当然没有任何问题,但是有汉字会被编译成unicode码: import json dic = {","sex":& ...

  5. Python中定义函数时参数有默认值的小陷阱

    在定义函数的时候,如果函数的参数有默认值,有两种类型的参数,一种是整数,字符串这种不可变类型,另一种是列表这种可变类型,对于第一种情况没有什么特殊的地方,但是对于可变类型,有一个微妙的小陷阱. 可变类 ...

  6. python中调用函数时,参数顺序与参数赋值问题

    设置类和函数如下:class MM(): def ff(self,url(1),method(2),data=None(3),cookie=None(4)): if method.lower()==& ...

  7. C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法

    场景 C#中委托与事件的使用-以Winform中跨窗体传值为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100150700 ...

  8. python中MySQL模块TypeError: %d format: a number is required, not str异常解决

    转载自:http://www.codeif.com/topic/896 python代码: attr_sql = "INSERT INTO `ym_attribute` (`attr_nam ...

  9. VMware中Ubuntu开机时停在启动界面,不进入X-window的解决办法

    启动Ubuntu虚拟机时,停在这个画面不动: 试了若干次,都是这样.尝试了新建一个虚拟机然后把.vmdk文件拷过去启动,无法解决. 尝试重启,在这个界面按esc进入grub: 选择恢复模式 recov ...

随机推荐

  1. jquery中的下拉框

    1.1select获取选中的value值 <label for="select"> <select id="key_RedemptionMode&quo ...

  2. 【BZOJ3196】二逼平衡树(树状数组,线段树)

    [BZOJ3196]二逼平衡树(树状数组,线段树) 题面 BZOJ题面 题解 如果不存在区间修改操作: 搞一个权值线段树 区间第K大--->直接在线段树上二分 某个数第几大--->查询一下 ...

  3. 【网络流24题21】最长k可重区间集问题

    题面戳我 题目描述 对于给定的开区间集合I和正整数k,计算开区间集合I的最长k可重区间集的长度. 输入格式: 的第 1 行有 2 个正整数n和k,分别表示开区间的个数和开区间的可重迭数.接下来的 n行 ...

  4. 关于html中图片上传预览的实现

    本地图片预览 第一种方法 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type& ...

  5. VM快照-克隆重要应用讲解及克隆后网卡问题解决

    快照:snapshot 1---2---3---5 用于以后 rollback 1 2 3 5 克隆前关机:halt 克隆之后连不上网 解决办法: 1.编辑eth0的配置文 vi/etc/syscon ...

  6. 移动端造json假数据时的坑(转义符问题)

    最近在 Json 数据的解析上碰到了一些坑,特此记录一下. 正文 迭代开发中,经常出现服务端接口还没开发完成的情况,所以经常需要移动端自己在本地造一些假数据. emmm,虽然说好像造假数据也不是什么很 ...

  7. react实战第一步--搭建项目

    使用 create-react-app 快速构建 React 开发环境 1.cnpm install -g create-react-app 2.create-react-app react2(rea ...

  8. eclipse的常用快捷键和一些基本设置!!!

    对于一些比较繁琐简单的代码没必要天天敲,为了提高效率,还是需要使用一些快捷键的:下面就说了一些比较基本的. alt+shift+s+c     无参构造器 alt+shift+s+O    有参构造器 ...

  9. 部署openstack的官网文档解读mysql的配置文件

    部署openstack的官网文档解读mysql的配置文件(使用与ubutu和centos7等系统) author:headsen chen  2017-10-12 16:57:11 个人原创,严禁转载 ...

  10. jQuery 3.0最终版发布,十大新特性眼前一亮

    jQuery 3.0在日前发布了最终的全新版本.从2014年10月,jQuery团队对这个主要大版本进行维护开始,web开发者社区便一直在期待着这一刻的到来,终于在2016年6月他们迎来了这一个最终板 ...