【问题标题】:Python Packages not recognized by iPythoniPython 无法识别的 Python 包
【发布时间】:2018-04-09 20:13:16
【问题描述】:

我已经在 OS X 上使用 python 3 大约 6 个月了,最近开始使用 iPython。我已经使用 pip install 工具安装了一些 python 包,如下所示:

python3.6 -m pip install matplotlib

我也使用 pip install 工具安装了 iPython(运行 python3.6),但是,一旦在 iPython 中,以前安装的包就无法识别。我确信有一种方法可以将 iPython '指向'包的位置,我只是不知道它是什么。我知道这是一个基本问题,但任何帮助将不胜感激。

【问题讨论】:

  • 你能在 iPython 和普通 REPL 下 import sys; print sys.path 向我们展示它们的区别吗?
  • 应该看到的是 IPython 具有与普通 Python 完全相同的列表,最后加上几个额外的目录(系统范围和每个用户 IPython/extensions目录)。如果你看到你的系统范围的站点包目录(类似于/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-download,但它们的第一部分对于 Homebrew 或 Anaconda 可能不同)没有出现在 IPython 中,那就是要解决的问题.
  • 另外:您是否一直在使用虚拟环境?
  • 看来 iPython 最初是与 miniconda 一起安装的,但我正在将软件包安装到我的系统版本的 python,而不是 miniconda 库。因此,当我尝试在 iPython 中加载包时,找不到它们。卸载那个版本的 iPython 并在没有 miniconda 的情况下重新安装解决了这个问题。我还没有在虚拟环境中工作,但是随着我更多地参与我项目的生物信息学方面,我将需要这样做。感谢您的意见!

标签: python macos ipython


【解决方案1】:

当您的系统上有多个 Python 版本时,可能会发生这种情况。

原因:

IPython 的设置有些混乱(就像一般的 Python 打包一样),您可能对它如何进入搞砸状态的细节不感兴趣,所以我会保持简短:“ipython”命令实际上只是一个带有shebang 的普通旧python 脚本。它由安装程序console_scripts 创建。

pipmonkeypatches setuptools which monkeypatches distutils 在安装时使用 shebang:here

解决办法:

查找绑定到控制台脚本的 Python 解释器,如下所示:

$ head -1 $(which ipython)
#!/usr/bin/python3

使用该解释器卸载 IPython,如下所示:

$ /usr/bin/python3 -m pip uninstall ipython

为您想要的解释器重新安装 IPython,如下所示:

$ python3.6 -m pip install ipython

奖励:如果您想将 ipython 与系统级 Python 2 解释器和系统级 Python 3 解释器一起使用,请考虑在 bashrc 或类似文件中设置别名:

alias ipython2="python2 /path/to/ipython"
alias ipython3="python3 /path/to/ipython"

您可以使用 pip2pip3 进行类似操作。请注意,ipython 在 v6.0 中已放弃对 Python 2 的支持,但在 Python 2 的站点包中安装 ~=5.6 并在 Python 3 的站点包中安装最新版本是很好的。

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2012-06-18
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多