用于 mpld3 的 pip 安装

问题描述 投票:0回答:4

我刚刚做了一个

 sudo pip install matplotlib

效果很好。然后

 sudo pip install mpld3

详情:

$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...
python pip
4个回答
2
投票

假设您使用

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

sudo ipython -m pip install mpld3

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


2
投票

看看你的

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

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

  1. 在命令提示符下使用

    which
    (Linux) 或
    where
    (Windows) 检查
    pip
    python
    /
    ipython
    路径。

    1.1。如果 ipython 似乎从不同的路径运行,请启动它并使用

    import sys; sys.executable
    检查匹配的 Python 安装位置。

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

编辑:经过与OP的一些额外讨论(查看@评论),如果ipython安装未与python可执行文件链接,您应该将ipython文件的第一行更改为shabang,然后是Python的路径可执行的。它应该看起来像:

#!/usr/bin/python
/usr/bin/python
是正确的 Python 可执行文件的路径时。

编辑2:对于未链接的ipython,更好的解决方案是使用

python -m pip install ipython
安装正确的Python版本的ipython(感谢@abarnert和@koffein)。


0
投票

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

#!/usr/bin/python

#!/usr/bin/env python

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


0
投票

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

仅仅更改其

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


当然,如果您只想要一个

ipython
,只需使用正确版本的 Python 来安装它,而不是为任何其他 Python 安装它。

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

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


如果您想要 IPython 用于多个 Python 版本怎么办?

不幸的是,他们都会尝试使用相同的名称进行安装,

ipython

。也许是 
ipython2
ipython3
,但这只有在您自己的两个 Python 安装分别是一个 2.x 和一个 3.x 时才有用。如果您有 CPython 3.4 和 PyPy 3.2,或者系统安装的 CPython 2.7 和第三方 CPython 2.7,那对您没有任何好处。

那么,你能做什么?

我所做的就是确保每个 Python(除了系统安装的 Python 之外)都配置为使用不在我的 PATH 上的

scripts

/
bin
 目录,然后手动进行符号链接。

因此,在我的 Mac 和 Linux 系统上,

ipython

ipython2
 都指向系统 Python 2.7,并且都是由 
sudo pip install ipython
 安装的。但是 
ipython3
 是我手动创建的符号链接,指向我的主要 Python 3 安装安装二进制文件的位置。 
ipypy
ipypy3
 是我的主要 PyPy 2.x 和 3.x 安装安装二进制文件的符号链接。 (当然,我创建的所有并行符号链接名为 
python
python2
python3
pypy
pypy3
。)

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

© www.soinside.com 2019 - 2024. All rights reserved.