【问题标题】:pip install for mpld3pip 安装 mpld3
【发布时间】:2015-08-05 19:14:28
【问题描述】:

我刚刚做了一个

 sudo pip install matplotlib

效果很好。那么

 sudo pip install matplotlib

详情:

$sudo pip install mpld3
Downloading/unpacking mpld3
  Downloading mpld3-0.2.tar.gz (1.1MB): 1.1MB downloaded
  Running setup.py (path:/private/tmp/pip_build_root/mpld3/setup.py) egg_info for package mpld3

Installing collected packages: mpld3
  Running setup.py install for mpld3

Successfully installed mpld3
Cleaning up...

所以mpld3也安装好了。

由于某种原因 matplotlib 出现在 python 中,但没有出现在 mpld3 中:

In [3]: import matplotlib.pyplot as plt

In [4]: plt.plot([3,1,4,1,5], 'ks-', mec='w', mew=5, ms=20)
Out[4]: [<matplotlib.lines.Line2D at 0x103ab4d10>]

In [5]: plt.show()

工作正常..

但是:

In [6]: import mpld3
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-25a6968c2f16> in <module>()
----> 1 import mpld3

ImportError: No module named mpld3

是否有必要更新,例如PYTHONPATH 或其他一些环境变量?

更新回答@infinity 关于 pip 与 ipython 版本的(好)问题:

$which pip
/usr/local/Cellar/python/2.7.8_2/bin/pip
18:20:42/lightbox2 $which ipython
/usr/local/bin/ipython
18:20:45/lightbox2 $which python
/usr/local/Cellar/python/2.7.8_2/bin/python
18:23:58/lightbox2 $sudo pip install ipython
Password:
Requirement already satisfied (use --upgrade to upgrade): ipython in /Library/Python/2.7/site-packages
Cleaning up...

【问题讨论】:

  • 键入:which pipwhich ipython。告诉我们答案:)
  • @Infinity 我知道你要去哪里:ipython 来自 /usr/local/bin 而 python 来自 brew。那么,我需要弄清楚如何将 ipython 与 brew python 连接起来。
  • @Infinity 请查看更新的 OP
  • 使用ipython,能不能写“import sys;sys.executable”?
  • @Infinity 是的,它是不正确的 (/usr/bin/python) 。我在这里看到的唯一建议stackoverflow.com/questions/9386048/… 需要更新 ipython 脚本。太丑了。

标签: python pip


【解决方案1】:

假设您从终端使用ipython 启动python 控制台。如果要确保将软件包安装到正确的 python 安装中,请使用

sudo ipython -m pip install mpld3

因此应该自动使用正确的 pip(和正确的路径)。

【讨论】:

  • 这很有趣。但是,根本问题实际上是 ipython 指向了错误的 python 安装。
  • 我其实很喜欢这个解决方案。好东西。 +1
【解决方案2】:

查看您的 where 结果,我认为您的 ipython 在尝试导入模块时似乎查看了错误的路径。

完整的诊断和修复(为您和未来的 Google 员工):

  1. 在命令提示符下使用which (Linux) 或where (windows) 来检查pippython/ipython 路径。

    1.1。如果 ipython 似乎从不同的路径运行,请启动它并使用 import sys; sys.executable 检查匹配的 Python 安装位置。

  2. 无论如何,通过仔细修改 PATH 环境变量以显示正确的 Python 可执行文件的路径来解决此问题。

编辑:在与 OP 进行了一些额外讨论(看@cmets)后,如果 ipython 安装未与 python 可执行文件链接,则应将 ipython 文件的第一行更改为 shabang,然后将路径你的 Python 可执行文件。它应该看起来像:#!/usr/bin/python /usr/bin/python 是正确 Python 可执行文件的路径。

编辑 2:未链接 ipython 的更好解决方案是使用 python -m pip install ipython 为正确的 Python 版本安装 ipython(感谢 @abarnert 和 @koffein)。

【讨论】:

  • “正确的 python 可执行文件的路径”在这里是不够的。 PATH 确实指向正确的路径。问题似乎是没有办法将 ipython 配置为指向不同版本的 python - 除了修改 ipython 脚本本身。
  • 也许将第一行 /usr/local/bin/ipython 编辑为 #!/usr/local/Cellar/python/2.7.8_2/bin/python 可以吗?
  • 这就是我一直说的需要。但这很丑陋。令人惊讶的是,除了修改 ipython 脚本本身之外,没有办法将 ipython 配置为指向不同的 python。在我自己的版本中,我已更改为 !/usr/bin/env python
  • 您是否尝试使用 pip 安装 ipython? (pip install ipython)。你 pip 从正确的路径运行,我认为它应该工作
  • 我将给出一个答案,将 ipython 脚本更改为 #!/usr/bin/env python。但你一直很有帮助,所以会支持你。
【解决方案3】:

ipython 可执行文件被硬编码到 /usr/bin/python。我能看到的最好的解决方法是将第一行从

#!/usr/bin/python

#!/usr/bin/env python

这解决了我的非标准 python 位置的问题。

【讨论】:

  • 这很可能是个坏主意,原因在 Infinity 的回答的评论中解释了原因。
【解决方案4】:

ipython 脚本只是实际 IPython 模块的一个非常薄的包装器,安装在 Python 的站点包中。

只是将其#! 行更改为指向不同的Python 几乎总是一个坏主意。其他 Python 可能在其 site-packages/dist-packages 中有不同的 IPython 版本,或者可能根本没有。


当然,如果您只想要一个 ipython,只需使用正确版本的 Python 安装它,不要为任何其他 Python 安装它。

大多数人遇到的问题是,他们不小心为两个不同的 Python 安装了它,而他们第二次安装的任何一个(或者偶尔,无论哪个最终位于 PATH 上的获胜位置)最终都会成为他们使用的那个,即使这不是他们想要的。

如果您不想在第二个 Python 版本中使用 IPython,请不要安装它。或者,如果您已经这样做了,请为两个 Python 版本卸载它,然后为您想要的版本重新安装它。


如果您希望 IPython 用于多个 Python 版本怎么办?

不幸的是,他们都将尝试使用相同的名称进行安装,ipython。可能是ipython2ipython3,但这只有在您自己的两个 Python 安装是一个 2.x 和一个 3.x 时才有帮助。如果你有 CPython 3.4 和 PyPy 3.2,或者系统安装的 CPython 2.7 和第三方 CPython 2.7,那对你没有任何好处。

那么,你能做什么呢?

我要做的是确保每个 Python(除了系统安装的 Python)都配置为使用不在我的 PATH 上的 scripts/bin 目录,然后手动符号链接。

因此,在我的 Mac 和 Linux 系统上,ipythonipython2 都指向系统 Python 2.7,并且仅由 sudo pip install ipython 安装。但是ipython3 是我手动创建的符号链接,指向我的主要 Python 3 安装安装二进制文件的位置。 ipypyipypy3 是我的主要 PyPy 2.x 和 3.x 安装安装二进制文件的符号链接。 (当然,我创建的所有并行符号链接都命名为 pythonpython2python3pypypypy3。)

我确实必须手动创建这些符号链接,但这比修改脚本要好。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2020-10-12
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多