module ‘markdown‘ has no attribute ‘version‘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了module ‘markdown‘ has no attribute ‘version‘相关的知识,希望对你有一定的参考价值。

最近在写一个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:CodePythonAutoCMDBViewervenvlibsite-packages
est_frameworkcompat.py in <module>, line 161
Python Executable:  D:CodePythonAutoCMDBViewervenvScriptspython.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:CodePythonAutoCMDBViewer>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:CodePythonAutoCMDBViewervenvLibsite-packages est_frameworkcompat.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 <h2>.
        """
        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

以上是关于module ‘markdown‘ has no attribute ‘version‘的主要内容,如果未能解决你的问题,请参考以下文章

萤石-module 'serial' has no attribute 'Serial'

解决pycharm问题:module ‘pip‘ has no attribute ‘main‘

module ‘urllib‘ has no attribute ‘urlretrieve‘

module ‘urllib‘ has no attribute ‘urlretrieve‘

成功解决AttributeError: module ‘numpy‘ has no attribute ‘polyld‘

VSCODE 报错 Module ‘xx‘ has no ‘xx‘ member pylint(no-member)