环境: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)

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

最新文章

  1. Atitit 《控制论原理与概论attilax总结
  2. [经验]Textbox 做日志记录,
  3. VMware vCenter Server安装图解教程
  4. lenovo X230热键功能
  5. mysql中批量替换数据库中的内容的sql
  6. 在HTML5中怎样实现Canvas阴影效果
  7. 混合模式程序集是针对“v1.1.4322”版的执行时生成的,在没有配置其它信息的情况下,无法在 4.0 执行时中载入该程序集。
  8. 10、 iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile
  9. clear命令新认识
  10. nginx代理 (带着请求头)
  11. 2018-2019 20165235 网络对抗技术 Exp0:kali的安装
  12. Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系
  13. Codechef Bear and Clique Distances
  14. 工具(3): 转换Excel表格到MarkDown:exceltk
  15. celery定时任务
  16. linux下安装node踩坑总结
  17. Vue插件写、用详解(附demo)
  18. 关于python中的is和==的区别
  19. ActiveMQ使用线程池实现消息的生产与消费
  20. 我的JAVA运算符理解

热门文章

  1. Struts2【OGNL、valueStack】就是这么简单
  2. 搞定导致CPU爆满的“罪魁祸首”
  3. 【BZOJ3998】弦论(后缀自动机)
  4. conda创建py27虚拟环境安装theano(anaconda3)
  5. 学习笔记-C++ STL iterator与对指针的理解-20170618
  6. 线程实现ServerSocket和Socket实现数据交互
  7. Git - 可视化冲突解决工具P4Merge
  8. 【Python】 系统配置/进程等信息查看 psutil
  9. 【Python&amp;数据结构】 抽象数据类型 Python类机制和异常
  10. linux --&gt; Linux变量之$#, $*, $@含义