記一次djangorestframework-jwt 報錯

今天在使用djangorestframework-jwt 時遇到了一個錯誤,錯誤提示如下:

AttributeError at /jwt-auth/ module 'jwt' has no attribute 'encode'

找到這個出錯的地方"rest_framework_jwt包下的utils.py"模塊,代碼塊

def jwt_encode_handler(payload):
    key = api_settings.JWT_PRIVATE_KEY or jwt_get_secret_key(payload)
    return jwt.encode(
        payload,
        key,
        api_settings.JWT_ALGORITHM
    ).decode('utf-8')

根據錯誤的提示,應該是jwt下面沒有encode這個方法,然後ctrl+鼠標左鍵打開了jwt,發現裏面確實沒有這個方法,所以我懷疑是我安裝的jwt版本問題,我就卸載、重裝了jwt;重試之後發現仍然報錯,我網上搜索這個錯誤,發現網上並沒有和我類似的。我就有查詢了在Django下使用jwt的方法,發現有兩個,一是安裝PyJWT、二是使用djangrestframework-jwt,我發現那些文章中從沒有說明要單獨安裝jwt這個包,我想這個包應該是安裝上面兩個包時自己安裝的,所以我先卸載jwt、然後卸載PyJWT、djangrestframework-jwt,重新安裝PyJWT、djangrestframework-jwt,重試一次,發現成功了!

總結這次解決問題的心路歷程,安裝依賴庫時應該安裝依賴順序安裝,否則可能會導致版本問題,如果卸載一個包不行,那就把相關的包都卸載再按順序安裝~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章