pld install for mpld3

时间:2015-05-24 01:10:22

标签: python pip

我刚做了一个

 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或其他一些env var?

更新从@infinity回答有关pip vs 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...

4 个答案:

答案 0 :(得分:2)

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

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

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

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

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

  3. 编辑:经过与OP的一些额外讨论(看看@ comments),如果ipython安装没有与python可执行文件链接,你应该将你的ipython文件的第一行更改为shabang,然后是Python可执行文件的路径。当#!/usr/bin/python是正确的Python可执行文件的路径时,它应该看起来像/usr/bin/python

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

答案 1 :(得分:2)

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

sudo ipython -m pip install mpld3

所以应该自动使用正确的点(和正确的路径)。

答案 2 :(得分:0)

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

更改第一行
#!/usr/bin/python

#!/usr/bin/env python

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

答案 3 :(得分:0)

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

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

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

大多数人遇到的问题是他们意外地为两个不同的蟒蛇安装了它,并且他们安装的第二个(或偶尔,无论哪一个最终在PATH的获胜位置)最终成为他们使用的那个,即使它不是他们想要的那个。

如果您不希望IPython用于第二个Python版本,请不要安装它。或者,如果您已经这样做,请为两个Python版本卸载它,然后将其重新安装到您想要的版本。

如果你想让IPython用于多个Python版本怎么办?

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

那么,你能做什么?

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

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

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