标签:simplejson json python pip
我在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__来做到这一点:
>>> import fractions
>>> fractions.__file__
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/fractions.py'
对于您来说,这显然将有所不同,但我希望在与fractions.py相同的文件夹中有一个json文件夹
如果您无法导入分数或队列或日期时间等
如果您无法从标准库中导入任何内容,则可能需要重新安装python.
如果json文件夹在那里并且包含__init__.py
使用文件浏览器的重命名功能来确保没有奇怪的特殊字符,但是除此之外,我不确定,是否可以从同一个文件夹中导入fragments.py但不能导入包,这意味着存在一些非常特殊的字符python版本的导入机制有误.
如果json文件夹不在标准库的其余部分中
您的python发行版可能具有与我期望的结构不同的结构,至少可以放心地查找它.
您可以在各种python文件using the find
command中搜索json文件夹,虽然不确定该如何工作,但可以尝试另一件事.如果您确实使用__init __.py,encode.py,decode.py,scanner.py和tool.py(至少是我的版本中的工具)找到了它,则可能需要弄清楚它是如何到达那里的,但只需将其移至与标准库其余部分相同的文件夹中即可.
如果找不到json包或找到它并且它已损坏
好了,那么您将需要更换它!不用担心,这并不难,只需抓住source release of python from the site并从中解压缩json包即可,解压缩后,json文件夹应位于Lib文件夹中.只需将其复制/移动到标准库的其余部分,就可以了!
我希望这可以帮助您调试正在发生的情况,它涵盖了我可以想象的所有情况,并且我对哪个问题可以解决您的问题(或者您能够弄清什么,以便我可以提出更多的选择)感兴趣.
标签:simplejson,json,python,pip
来源: https://codeday.me/bug/20191118/2029874.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。