在jupyter ipython笔记本上导入pandas失败

时间:2016-02-07 12:15:40

标签: python pandas ipython anaconda jupyter

我可以在spyder ide中导入pandas包;但是,如果我尝试打开一个新的juypter笔记本,导入失败。

我在MAC OS X上使用Anaconda软件包分发。

以下是我的工作:

In [1]: import pandas 

这是我得到的回应:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-5-97925edf8fb0> in <module>()
----> 1 import pandas

//anaconda/lib/python2.7/site-packages/pandas/__init__.py in <module>()
     11                       "pandas from the source directory, you may need to run "
     12                       "'python setup.py build_ext --inplace' to build the C "
---> 13                       "extensions first.".format(module))
     14 
     15 from datetime import datetime

ImportError: C extension: hashtable not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.

3 个答案:

答案 0 :(得分:9)

您安装了多个Python 2引擎。一个位于主操作系统平台,另一个位于Anaconda的虚拟环境中。你需要在后者上安装Panda。

在Bash提示符下运行:

which python

然后在Jupyter / IPython中运行以下命令,并将结果与​​从Bash脚本中获得的输出进行比较:

from sys import executable
print(executable)

如果它们不同,您应该注意后者的结果(即复制它),然后转到Bash提示符,并执行以下操作:

<the 2nd output> -m pip install pandas

所以喜欢这个:

/usr/bin/anaconda/python2 -m pip install pandas

将为您的Anaconda Python安装Pandas。

有一种方法可以使用sys.path.append('path to alternative locations')将库路径添加到现有环境中,但每次想要使用备用环境时都必须这样做,因为效果是临时的。

您也可以在主环境中安装所有内容:

python -m pip install cython scipy panda matplotlib jupyter notebook ipython

更新

根据对上述部分的回应:

像这样安装homebrew

在您的终端中:

xcode-select --install

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后运行:

brew doctor
brew update
brew upgrade

现在继续安装Python 2到Brew:

brew install python

或Python 3

brew install python3

或两者都做。安装其他有用的东西!

brew install git conda gfortran clang pkg-config

然后,您可以继续使用brew或使用pip安装所需的库,但首先应确保已安装pip本身。

easy_install pip

然后你就可以像这样安装Python包(NumPy包含在SciPy中,而SciPy和Matplotlib依赖于Cython和C,Scipy还使用fortran进行ODE):

python2 -m install cython scipy pandas matplotlib jupyter

你可以为Python 3做同样的事情。

这个干净的安装应该真正解决问题。如果没有,请从Python.org下载Python并重新安装。 brew如果发现程序包已经存在,则有时会拒绝安装程序包。我不建议删除Python 2,以便您可以通过brew安装它。这可能会导致OS X出现问题。因此,最好的替代方法是通过安装从网站下载的软件包来修复现有安装。 OS X确保将软件包安装在正确的位置。完成后,您可以返回说明,但从brew install python3开始。

答案 1 :(得分:5)

我在使用Anaconda(Python 2)的Mac OS X上遇到了同样的问题。我尝试在python repl中导入pandas包,并收到此错误:

ValueError: unknown locale: UTF-8

因此,我已将以下几行添加到〜/ .bash_profile中:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

这解决了我的问题。

答案 2 :(得分:0)

您可以做的一件事是直接在Jupyter中安装库,您可以尝试在单元格中进行尝试:

!pip install pandas

!pip3 install pandas