python - 安装 simplejson 后没有名为 'json' 的模块

标签 python json pip simplejson

我在 Ubuntu 14.04 上工作,我的机器上有多个版本的 Python(它们包括 python2.7 和 python3.4)。几天前,我在我的系统上安装了 simplejson。我不记得我是怎么做到的,但我想它一定类似于 pip install simplejson。但是,当我尝试安装任何 python 包时,现在开始出现一个奇怪的问题。例如,刚才我尝试使用 sudo pip3.4 install Tkinter 安装 Tkinter 并抛出以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/pip3.4", line 9, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip3.4')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 351, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2363, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2088, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/subversion.py", line 4, in <module>
    from pip.index import Link
  File "/usr/lib/python3/dist-packages/pip/index.py", line 15, in <module>
    from pip.wheel import Wheel, wheel_ext
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 25, in <module>
    from distlib.scripts import ScriptMaker
  File "/usr/share/python-wheels/distlib-0.1.8-py2.py3-none-any.whl/distlib/scripts.py", line 15, in <module>
  File "/usr/share/python-wheels/distlib-0.1.8-py2.py3-none-any.whl/distlib/resources.py", line 20, in <module>
  File "/usr/share/python-wheels/distlib-0.1.8-py2.py3-none-any.whl/distlib/util.py", line 11, in <module>
ImportError: No module named 'json'

如果错误告诉我在我拥有的其中一个文件中,有时我可以修复此问题:

import json

我只是将其转换为

import simplejson as json

我尝试卸载 simplejson:

sudo pip uninstall simplejson

但它给了我同样的错误:找不到 json。

任何人都可以帮我解决这个问题,以便我能够愉快地安装 python 包吗?提前致谢。

最佳答案

注意:我没有明确的答案,但会提供一系列您可以尝试的步骤:

第一件事是看看你是否可以从通常的 python 解释器中导入 json:

import json
print(json.__file__) #this would be important to know if it works

如果这确实有效(以及注释什么是 json.__file__),那么您会想尝试 use pip from the interpreter.

如果无法正常导入json:

这并不奇怪,我没想到 pip 会在一个非标准的地方寻找模块。你会想弄清楚 json 包应该在你的计算机上的什么位置,你可以通过从标准库中导入另一个模块并查看它的 __file__ 来做到这一 pip :

>>> import fractions
>>> fractions.__file__
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/fractions.py'

这对您来说显然会有所不同,但我希望在与 fractions.py 相同的文件夹中有一个 json 文件夹

如果你不能导入fractionsqueuedatetime

如果您无法从标准库中导入任何内容,您可能只想重新安装 python。

如果 json 文件夹存在并且包含一个 __init__.py

使用你的文件浏览器的重命名功能来确保没有奇怪的特殊字符,但除此之外我不确定,如果你可以导入 fractions.py 但不是来自同一个文件夹,这意味着您的 Python 版本的导入机制存在严重问题。

如果json文件夹不在标准库的其余部分

您的 python 发行版可能与我预期的结构不同,至少看看它不会有什么坏处。

您可以在各种 python 文件中搜索 json 文件夹 using the find command ,不太确定它是如何工作的,但只是尝试另一件事。如果您通过 __init__.pyencode.pydecode.pyscanner.py 找到它和 tool.py(至少我的版本中有这些)您可能想弄清楚它是如何到达那里的,但也许只是将它移动到与其余部分相同的文件夹中标准库。

如果找不到 json 包或者找到它但它已损坏

那么你需要更换它!别担心,这并不难,只需捕获 source release of python from the site并从中提取 json 包,解压缩后 json 文件夹应该位于 Lib 文件夹中。只需将其复制/移动到标准库的其余部分,您就可以开始了!


我希望这可以帮助您调试正在发生的事情,这涵盖了我能想象到的所有场景,我很想知道哪一个解决了您的问题(或者您能够弄清楚什么,以便我想出更多选项)

关于python - 安装 simplejson 后没有名为 'json' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37213550/

相关文章:

javascript - 修复 json.parse 正则表达式与 "$"字符冲突中的 JQuery-1.4.1 和 json-2.0 冲突

python - 尝试安装biopython后Conda返回未找到属性错误符号

Apache Camel 的 JsonMappingException

javascript - Ext JS - Store 与 JsonStore

python - 如何在 requirements.txt 中声明一个直接的 github 源

python - 分发大型复杂 Python 项目以便其他用户完全安装它们而不考虑操作系统的最佳方式?

python - 使用 cleanlooks 样式自定义 QRubberBand 外观

python - 在 pandas 中创建质量分数列

python - 在 Windows XP 中使用 Python 隐藏任务栏

python - 无法在 Windows 上使用 python-mnist 包加载 MNIST 数据