如何解决熊猫的导入错误?

Posted

技术标签:

【中文标题】如何解决熊猫的导入错误?【英文标题】:How to solve import error for pandas? 【发布时间】:2015-08-25 23:44:43 【问题描述】:

我使用 python 2.7.7 安装了 Anaconda。 但是,每当我运行“import pandas”时,我都会收到错误:"ImportError: C extension: y 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." 我尝试运行建议的命令,但它指出

skipping 'pandas\index.c' Cython extension (up-to-date)      
skipping 'pandas\src\period.c' Cython extension (up-to-date) 
skipping 'pandas\algos.c' Cython extension (up-to-date)      
skipping 'pandas\lib.c' Cython extension (up-to-date)        
skipping 'pandas\tslib.c' Cython extension (up-to-date)      
skipping 'pandas\parser.c' Cython extension (up-to-date)     
skipping 'pandas\hashtable.c' Cython extension (up-to-date)  
skipping 'pandas\src\sparse.c' Cython extension (up-to-date) 
skipping 'pandas\src\testing.c' Cython extension (up-to-date)
skipping 'pandas\msgpack.cpp' Cython extension (up-to-date)

以前有没有人遇到过这个问题并找到了解决方案?

【问题讨论】:

【参考方案1】:

所以您可能遇到的另一个问题是我的情况: 您的系统上可能在不同位置有多个 Python 版本因此,即使您已将所有内容都安装为最新的 pip,它也可能会尝试解释尚未应用该 pip 更新的版本。

因此,在您的 IDE 中使用 Visual Studio Code,检查以确保您使用的是正确的 Python 解释器。

在 VS Code 中,您可以通过单击底部蓝色条左侧的 Python 来找到它。如果出现多个解释器,您可能需要使用这些路径并卸载所有其他路径以消除混淆。

【讨论】:

【参考方案2】:

好的,我尝试了 20 多种不同的安装/卸载方式,但仍然无法正常工作。 (conda 和 pip、--force --upgrade、==THEGOODVERSION 等...)。

最后我发现我的PATH错了……

【讨论】:

【参考方案3】:

升级 pip 为我解决了这个问题:

pip install --upgrade pip

【讨论】:

【参考方案4】:

我现在在使用 Python 3.4.3 时遇到了同样的问题。

我使用的是 pandas-0.18.0。

升级(使用 pip)为我解决了这个问题:

[sudo] pip install --upgrade pandas

升级的最终结果:

Successfully installed numpy-1.13.3 pandas-0.21.0 python-dateutil-2.6.1 pytz-2017.3 six-1.11.0

在这之后,问题就消失了!

【讨论】:

【参考方案5】:

我尝试了上述所有解决方案,但没有任何效果......

错误信息

我收到ipython 的错误消息

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

它建议

$ python setup.py build_ext --inplace --force

解决方案

我的建议:注意版本问题!

我从官方 github repo 克隆 pandas,然后自己构建并由 pip 安装

以下是我在终端输入的命令

$ cd pandas

$ python setup.py build_ext --inplace --force

$ sudo pip install .  # don't forget the dot 

或者,如果您想安装在您的个人 Linux 帐户而不是系统下(由于多用户问题)

你可以添加--user标志

$ pip --user install . # don't forget the dot, too

现在,我的笔记本电脑上一切正常

我的配置

Ubuntu 16.04
Python 2.7
Numpy 1.13.1 

祝你好运!

【讨论】:

【参考方案6】:

实际上,在以下环境中,这些答案都不适合我:

docker-compose # multiple containers, the managing one based on debian
Python 2.7
Django 1.8.19
numpy==1.11.3 # pinned to version, because of https://github.com/rbgirshick/py-faster-rcnn/issues/481

... more requirements

阅读后,以下解决方案有效

https://github.com/pandas-dev/pandas/issues/18281

https://github.com/pandas-dev/pandas/issues/16715

既解决了临时解决方案,又建议升级,

所以我集成到了 Dockerfile 中

pip install -r requirements.txt \
&& pip install \
pandas==0.21.0 \
--force-reinstall \
--upgrade \
--no-deps \
--no-cache \
--find-links https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com/ \
--no-index

https://github.com/pandas-dev/pandas/issues/16715#issuecomment-310063504中提到的

我尝试了这里提到的所有解决方案,除了公认的答案,也是因为 a) 我不希望在 web 生产环境中使用 anaconda,b) 这不是为架构构建框架或 cli 解决方案的好答案,其中 a包不独立使用...

此外,我不喜欢 @colo 的答案被否决,因为它实际上是在特定环境中的可行解决方案。

对于像我这样有类似要求和期望的人,我希望能节省一些时间。

【讨论】:

【参考方案7】:

我在运行tox 时遇到了完全相同的问题。

解决步骤:

    更新setup.py 以包含pandas==0.23.0(而不是0.21.0)。 删除.tox目录 再次运行tox

【讨论】:

【参考方案8】:

我无法使用常规升级 pandas

pip install --upgrade pandas 

"tensorflow 1.6.0 has requirement numpy>=1.13.3, but you'll have numpy 1.13.1 which is incompatible."

但是遇到以下问题:

pip install --upgrade pandas --force

彻底解决问题

【讨论】:

这也为我工作,我正在研究一个虚拟环境。谢谢【参考方案9】:

当我需要从 Python 32 位升级到 64 位以使用 tensorflow 时,我遇到了这个问题。

运行此命令会卸载 pandas 0.21 并重新安装 0.22:

pip install --upgrade pandas

已排序。

【讨论】:

【参考方案10】:

我在使用 python 2.7.13 时遇到了这个问题 这是我的解决方案: 1. 安装 Cython 与

pip install Cython

2。安装 g++ 和 gcc

apt-get install gcc, g++

3。卸载熊猫

pip uninstall pandas

4。重新安装熊猫

pip install pandas

那么一切都会好起来的。

【讨论】:

【参考方案11】:

不要使用 conda 或 pip 安装它,而是尝试使用您的包管理器安装它:

sudo apt-get install python3-pandas

【讨论】:

【参考方案12】:

试试

/miniconda3/bin/conda install python

python: 3.6.0-0 --> 3.6.1-2

/miniconda3/bin/conda install pandas

尝试使用您的 Anaconda 版本。

【讨论】:

【参考方案13】:

Pandas 的部分代码是用 C 编写的,以使其运行得更快。如果您尝试手动安装 pandas,则需要构建它。尝试在这里使用 miniconda 包管理器重新安装它:http://conda.pydata.org/miniconda.html

然后你就可以这样做了

conda install pandas

在下面的链接中有非常简单的操作说明。只需执行 ctrl-f miniconda 即可找到讨论它的部分

http://pandas.pydata.org/pandas-docs/dev/install.html

【讨论】:

我实际上不能使用 conda,因为我所处的业务环境不允许代理。 奇怪的是我可以在 python 提示符下运行“import pandas”,但是当我尝试执行一个包含“import pandas”的文件时会导致错误。 c文件是未编译的,所以你必须构建pandas 好的大更新。我意识到我可以在某些目录中使用“import pandas”编译文件,但不能在其他目录中编译文件……有什么想法吗? 能否提供目录结构?【参考方案14】:

我遇到了同样的问题,问题来自编码问题。 我的操作系统以前是用法语设置的,一切都很好。但是当我切换到英语时,我遇到了上述错误。

你可以输入

locale

在终端中检查本地环境变量。

当用法语设置时,我有这样的配置: French config。 然后,在我切换到英语后,我有: English config。

然后我在 /Users/myName 下的 .bash_profile 中添加了以下几行,一切都恢复正常了。

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

【讨论】:

以上是关于如何解决熊猫的导入错误?的主要内容,如果未能解决你的问题,请参考以下文章

试图将数据从网站导入熊猫

熊猫不进口吗? 'NameError:未定义全局名称'pandas''

如何清除未解决的导入'cv2'错误?

如何解决错误“无法从'serial'(未知位置)导入名称'serial'”?

Pandas:如何解决“错误标记数据”?

使用colab导入tensorrt时出现错误如何解决