首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安装simplejson后没有名为'json‘的模块

安装simplejson后没有名为'json‘的模块
EN

Stack Overflow用户
提问于 2016-05-13 23:09:32
回答 2查看 17.3K关注 0票数 4

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

代码语言:javascript
复制
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'

有时,如果错误告诉我其中一个文件中包含以下内容,我可以修复此问题:

代码语言:javascript
复制
import json

我只是简单地将其转换为

代码语言:javascript
复制
import simplejson as json

我尝试卸载simplejson:

代码语言:javascript
复制
sudo pip uninstall simplejson

但它给出了相同的错误:找不到json。

有没有人可以帮我解决这个问题,这样我就可以安装python包了?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-16 08:23:14

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

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

代码语言:javascript
复制
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__来实现

代码语言:javascript
复制
>>> 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文件using the find command中搜索json文件夹,虽然不是很确定它是如何工作的,但这只是另一种尝试。如果您确实在__init__.pyencode.pydecode.pyscanner.pytool.py中找到了它(至少在我的版本中是这些),您可能会想弄清楚它是如何出现在那里的,但也可能只是将它移到与其他标准库相同的文件夹中。

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

那么你就需要更换它了!不用担心,这不是太难,只需抓取一个source release of python from the site并解压缩其中的json包,一旦它被解压,json文件夹应该在Lib文件夹中。只需将其复制/移动到标准库的其余部分,就可以了!

我希望这能帮助你调试正在发生的事情,这涵盖了我能想象到的所有场景,我对哪一个解决了你的问题很感兴趣(或者你能弄清楚什么,这样我就可以提出更多的选择)

票数 5
EN

Stack Overflow用户

发布于 2016-05-16 04:55:13

我猜你是使用pip install simplejsonPyPI下载或者使用apt-get install python-simplejson从ubuntu仓库下载来安装的。

如果你使用了上面的任何命令,那么你有可能下载了Python2的库,并且它将不能用于Python3 (将使用pip3.4 )。您可以尝试这些命令并帮助自己进行调试吗?

$ python -c "import simplejson"

$ python3.4 -c "import simplejson"

这将告诉您上次安装simplejson的是哪个版本的python (我猜在python2中)。如果第二个命令在ImportError命令中出错,请尝试:

$ pip3.4 install simplejson

然后安装库。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37213550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档