如何解决熊猫的导入错误?
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''