Plotly 杀死了我的 python 安装

Plotly killed my python install

我刚刚尝试使用 pip 安装 Plotly。我正在 运行ning python 来自 Anaconda,现在任何时候我尝试 运行 任何东西 python 我都会收到以下错误,我不知道如何修复它。我 运行 正在 Windows 7 64 位,Python3,4

    PS Z:\> pip
Traceback (most recent call last):
  File "C:\Anaconda3\Scripts\pip-script.py", line 3, in <module>
    from pip import main
  File "C:\Anaconda3\lib\site-packages\pip\__init__.py", line 11, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "C:\Anaconda3\lib\site-packages\pip\vcs\mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "C:\Anaconda3\lib\site-packages\pip\download.py", line 22, in <module>
    from pip._vendor import requests, six
  File "C:\Anaconda3\lib\site-packages\pip\_vendor\requests\__init__.py", line 58, in <module>
    from . import utils
  File "C:\Anaconda3\lib\site-packages\pip\_vendor\requests\utils.py", line 25, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "C:\Anaconda3\lib\site-packages\pip\_vendor\requests\compat.py", line 77, in <module>
    import simplejson as json
  File "C:\Anaconda3\lib\site-packages\simplejson\__init__.py", line 112, in <module>
    from .scanner import JSONDecodeError
  File "C:\Anaconda3\lib\site-packages\simplejson\scanner.py", line 10, in <module>
    c_make_scanner = _import_c_make_scanner()
  File "C:\Anaconda3\lib\site-packages\simplejson\scanner.py", line 6, in _import_c_make_scanner
    from simplejson._speedups import make_scanner
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 4: invalid start byte
PS Z:\>

这是 Anaconda 版本的 pip 和最新版本的 simplejson(安装 Plotly 时安装的)之间的交互。

作为解决方法,

del C:\Anaconda3\lib\site-packages\simplejson

这将允许 pip 和 Plotly 再次工作。不幸的是,如果你升级 Plotly,这个问题会再次发生,所以我们将在 Plotly requirements.txt 文件中添加一个解决方法,以防止将来发生这种情况。 (在 Python 2.6 系统上,Plotly 实际上只需要 simplejson。)

我评论过一个与此相关的 Anaconda 问题:https://github.com/ContinuumIO/anaconda-issues/issues/238

Plotly Python API 问题回复:找到一个解决方法,这样就不会再发生(或其他用户):https://github.com/plotly/python-api/issues/197

plotly 包的版本 1.6.10 开始,simplejsonordereddict 包不再是依赖项。

长话短说:

Python 2.6应该使用:

pip install plotly[PY2.6]

虽然 Python 2.7、3.3 和 3.4 仍应使用:

pip install plotly

更多信息:

如果您已经遇到此 post 中的问题,您可能需要删除 simplejson 包,如 scjody 给出的答案中所述。

simplejsonordereddict 包对于 Python 2.6 到 Python 3.4 具有共同的依赖关系。但是,由于 simplejson 与 anaconda 冲突,我们现在有一个用于 pip 安装的 "extras" 选项。

和往常一样,因为我们依赖的IPython版本不支持Python2.6,所以还有两个可选要求文件需要安装matplotlibIPython[notebook]

optional_requirements.txt
optional_requirements-2-6.txt

引用注释:

根据您使用的 shell,在使用 Python 2.6 的附加功能时,您可能需要将安装目标用引号 ('') 引起来:

pip install 'plotly[PY2.6]'