module 'markdown' has no attribute 'version'
admin
2023-07-19 15:42:49
0

最近在写一个CMDB的项目,遇到drf与django版本问题...

错误如下:
AttributeError at /
module 'markdown' has no attribute 'version'
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 2.1.1
Exception Type: AttributeError
Exception Value:
module 'markdown' has no attribute 'version'
Exception Location: D:\Code\Python\AutoCMDBViewer\venv\lib\site-packages\rest_framework\compat.py in , line 161
Python Executable:  D:\Code\Python\AutoCMDBViewer\venv\Scripts\python.exe
Python Version: 3.6.5
Python Path:
['D:\\Code\\Python\\AutoCMDBViewer',
 'D:\\Code\\Python\\AutoCMDBViewer',
 'D:\\Code\\Python\\AutoCMDBViewer\\venv\\Scripts\\python36.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 'D:\\Code\\Python\\AutoCMDBViewer\\venv',
 'D:\\Code\\Python\\AutoCMDBViewer\\venv\\lib\\site-packages',
 'D:\\Code\\Python\\AutoCMDBViewer\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.6.egg',
 'D:\\Code\\Python\\AutoCMDBViewer\\venv\\lib\\site-packages\\pip-10.0.1-py3.6.egg',
 'C:\\Apps\\PyCharm\\helpers\\pycharm_matplotlib_backend']
版本信息如下:
(venv) D:\Code\Python\AutoCMDBViewer>pip freeze
asn1crypto==0.24.0
cffi==1.11.5
cryptography==2.3.1
Django==2.1.1
django-filter==2.0.0
djangorestframework==3.8.2
idna==2.7
Markdown==3.0
pycparser==2.18
PyMySQL==0.9.2
pytz==2018.5
six==1.11.0
解决方案如下:

打开drf源码目录下的 compat.py 文件,我的路径是: D:\Code\Python\AutoCMDBViewer\venv\Lib\site-packages\rest_framework\compat.py 定位到157行代码进行修改:

try:
    import markdown

    if markdown.__version__ <= '2.2': # 将version修改为__version__即可
        HEADERID_EXT_PATH = 'headerid'
        LEVEL_PARAM = 'level'
    elif markdown.__version__ < '2.6': # 将version修改为__version__即可
        HEADERID_EXT_PATH = 'markdown.extensions.headerid'
        LEVEL_PARAM = 'level'
    else:
        HEADERID_EXT_PATH = 'markdown.extensions.toc'
        LEVEL_PARAM = 'baselevel'

    def apply_markdown(text):
        """
        Simple wrapper around :func:`markdown.markdown` to set the base level
        of '#' style headers to 

. """ extensions = [HEADERID_EXT_PATH] extension_configs = { HEADERID_EXT_PATH: { LEVEL_PARAM: '2' } } md = markdown.Markdown( extensions=extensions, extension_configs=extension_configs ) md_filter_add_syntax_highlight(md) return md.convert(text) except ImportError: apply_markdown = None markdown = None

相关内容

热门资讯

有黑科技更有好价!“广货行天下... 深圳新闻网2026年6月17日讯(记者 刘惠敏 王睿)6月16日,第四届深圳国际眼镜业博览会暨202...
沈阳自动化研究所提出AI驱动核... 上证报中国证券网讯(记者 韩远飞)6月16日,中国科学院沈阳自动化研究所发布消息,该所工业控制网络与...
IPO 热潮来袭,MANGOS... IPO 市场强势回归,引领这波浪潮的却不再是昔日的老面孔。FAANG 时代已成过去,一个新的缩写词正...
实用攻略!2026 年让人着迷... 实用攻略!2026 年让人愿意天天戴的智能手表盘点:览邦 Watch Ultra——插卡 4G + ...
斯塔默:不排除邀请伯纳姆进入内... 据凤凰卫视报道,面对英国国内持续发酵的首相政权危机,正在法国参加七国集团峰会的英国首相斯塔默6月17...
战败者难逃一劫,秋后算账的檄文... 伊朗战争走向结束,秋后算账正在开始。《纽约时报》周二发社论,大标题就是“特朗普总统输掉了这场战争”。...
罗技G305 X Superl... IT之家 6 月 16 日消息,罗技现已推出 G305 X Superlight 鼠标。新品的模具与...
营新化工取得含氨热水脱氨塔专利... 国家知识产权局信息显示,营口营新化工科技有限公司取得一项名为“一种含氨热水脱氨塔”的专利,授权公告号...
原创 雷... 有些手机,第一眼看上去不是参数,而是一种气质。像夏天傍晚街边橱窗里的一束光,明明不张扬,却会让人忍不...
胡锡进:美军印太司令部改回原名... 美国宣布将印太司令部的名称重新改回太平洋司令部,该司令部是2018年被特朗普政府从太平洋司令部改称印...