簡體   English   中英

Python3.8 JSON 模塊不適用於 Ubuntu 20.04 LTS

[英]Python3.8 JSON module not working on Ubuntu 20.04 LTS

File "/usr/lib/python3/dist-packages/jmespath/__init__.py", line 1, in <module>
    from jmespath import parser
  File "/usr/lib/python3/dist-packages/jmespath/parser.py", line 30, in <module>
    from jmespath import lexer
  File "/usr/lib/python3/dist-packages/jmespath/lexer.py", line 3, in <module>
    from json import loads
ImportError: cannot import name 'loads' from 'json' (unknown location)

每當我嘗試在我的 python3.8 代碼中執行“導入 json”時,我都會收到以下提到的錯誤。 如果我從代碼中刪除“import json”,python3.8 代碼就可以正常工作。 導入 json 對我來說是強制性的,因為有多個文件使用了 import json。 我不能到處改變它。 所以可能的解決方案是修復損壞的 json。 看起來我的 Ubuntu20.04 壞了。

提前致謝。 任何幫助將是可觀的。

我在從自制軟件安裝的 MacOS 上的 Python 版本也遇到了同樣的問題。 (3.9.6)

經過調查,我在全局站點包(全局 python 包文件夾)中安裝了另一個 json 依賴項,它覆蓋了標准 lib json

所以。 我剛剛刪除了這個全局站點包文件夾中的 json 文件夾和一個文件,它工作正常!

就我而言:

rm -rf /usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/json
rm -f /usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/json_extensions-0.2.1-py3.9-nspkg.pth

來自聊天中的討論

@juanpa.arrivillaga 問題解決了。 Python 安裝在 2 個地方。 一個在 .local 中,另一個在 root 帳戶中。 一旦我刪除了 ./local/lib/python3.8/json ,它就會自動開始指向 /usr/lib/python3.8/json 並且代碼起作用了。 謝謝大家的支持

我的解決方案類似於奧爾本斯。 對我來說,當 IntelliJ 嘗試安裝 boto3 並將一些包安裝到 /usr/local/lib/python3.9/site-packages 時,一切都失敗了。 我剛剛刪除了 json 文件夾和 json_extensions-0.2.1-py3.9-nspkg.pth 文件。

我能夠確定文件夾來自 IntelliJ 的位置,因為您可以看到 Extended Libraries > Python 3 。 雖然我有一個類似於 Albans 的庫根目錄是 /usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9,但里面沒有站點包文件夾。 您可以在 IntelliJ 的同一位置看到 site-package 文件夾,一旦您刪除了該 json 文件夾和 pth 文件,它就會重新開始工作。

編輯:我進一步研究了這一點,並將 json/schema 安裝到該文件夾​​中。 不知道為什么它將 json.schema 安裝在與內置庫相同的 json 文件夾中。

json.schema 文件夾:/usr/local/lib/python3.9/site-packages/json/schema/

也許你應該嘗試只導入 json 並使用它的函數,就像這樣:

import json
json.loads(json_data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM