Pandas Import:ModuleNotFoundError:没有名为' pandas._libs.tslib'

时间:2018-04-29 17:59:10

标签: python python-3.x pandas

每当我尝试导入pandas时,无论是在virtualenv内还是其他方面,我总是会收到此错误。

Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 19 2017, 08:03:39) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 26, in <module>
from pandas._libs import (hashtable as _hashtable,
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\_libs\__init__.py", line 3, in <module>
from .tslib import iNaT, NaT, Timestamp, Timedelta, OutOfBoundsDatetime
ModuleNotFoundError: No module named 'pandas._libs.tslib'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 35, in <module>
"the C extensions first.".format(module))
ImportError: C extension: No module named 'pandas._libs.tslib' 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.

我尝试了以下解决方案:

  1. 从git克隆pandas并运行SETUP.py(在python 3.6的实例上直接安装到我的win10 os中)
  2. 使用anaconda作为python发行版和conda来安装pandas
  3. 更新microsoft visual c ++ 2017可再发行组件
  4. 更新C:\ ProgramData \ Anaconda3 \ Lib \ site-packages \ PyInstaller \ hooks \ hook-pandas.py
  5. 这些似乎都不起作用。请帮我理解这里的问题。

5 个答案:

答案 0 :(得分:1)

此例外:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ishan\AppData\Roaming\Python\Python36\site-packages\pandas\__init__.py", line 35, in <module>
"the C extensions first.".format(module))
ImportError: C extension: No module named 'pandas._libs.tslib' 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

表明在安装过程中没有正确构建大熊猫。

后一句:

  

如果要从源目录导入pandas,可能需要先运行python setup.py build_ext --inplace --force来构建C扩展

如果您正在为pandas-dev github repository *贡献熊猫源代码(例如修复pandas错误或向pandas本身添加功能),那么您应该做的事情真的应该做。 很可能你不应该在项目中构建

一般来说,anaconda非常擅长正确安装pandas,所以我的猜测/评论是:

  

我的猜测是虚拟环境没有使用anaconda,并且安装了大熊猫(可能是在安装anaconda之前创建的?)。我会删除此目录C:\Users\ishan\AppData\Roaming\Python\Python36并查看是否有帮助

我之所以建议该目录的原因是因为它出现在错误消息中并且它看起来不像某个地方我希望anaconda安装大熊猫(通常或作为virtualenv)。

*注意:这是一件有趣的事情,要回馈给大熊猫社区:有一些低调的果实,拼写错误或代码更改,所以我建议您调查是否有任何可以贡献的方式。

答案 1 :(得分:0)

如果您使用的是Conda发行版(例如AnaConda,MiniConda),那么似乎可以这样做,卸载并重新安装Pandas可能会有所帮助。

在cmd控制台上运行以下命令:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/*">
        <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult" xmlns:c="http://www.ibm.com/xmlns/prod/cognos/dataSet/201006">
            <ERRORCODE>0</ERRORCODE>
            <PRODUCT BUILD="" NAME="" VERSION=""/>
            <DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="{count(c:dataTable[c:id='IncidentRequests']/c:row)}" TIMEFORMAT="h:mm:ss a"/>
            <METADATA>
                <FIELD>
                    <xsl:attribute name="EMPTYOK">YES</xsl:attribute>
                    <xsl:attribute name="MAXREPEAT">1</xsl:attribute>
                    <xsl:attribute name="NAME">IncNumber</xsl:attribute>
                    <xsl:attribute name="TYPE">TEXT</xsl:attribute>
                </FIELD>
                <xsl:for-each select="c:dataTable[c:id='IncidentRequests']/c:row[position()=1]/*">
                    <FIELD>
                        <xsl:attribute name="EMPTYOK">YES</xsl:attribute>
                        <xsl:attribute name="MAXREPEAT">1</xsl:attribute>
                        <xsl:attribute name="NAME"><xsl:value-of select="name()"/></xsl:attribute>
                        <xsl:attribute name="TYPE">TEXT</xsl:attribute>
                    </FIELD>
                </xsl:for-each>
            </METADATA>
            <RESULTSET>
                <xsl:attribute name="FOUND"><xsl:value-of select="count(c:dataTable[c:id='IncidentRequests']/c:row)"/></xsl:attribute>
                <xsl:for-each select="c:dataTable[c:id='IncidentRequests']/c:row">
                    <xsl:variable name="incid">
                        <xsl:value-of select="c:IncID"/>
                    </xsl:variable>
                    <ROW>
                        <xsl:attribute name="MODID">0</xsl:attribute>
                        <xsl:attribute name="RECORDID">0</xsl:attribute>
                        <COL>
                            <DATA>
                                <xsl:value-of select="//c:dataTable[c:id='IncidentHeader']/c:row[c:IncID=$incid]/c:IncNumber"/>
                            </DATA>
                        </COL>  
                        <xsl:for-each select="child::*">
                            <COL>
                                <DATA>
                                    <xsl:value-of select="."/>
                                </DATA>
                            </COL>
                        </xsl:for-each>
                    </ROW>
                </xsl:for-each>
            </RESULTSET>
        </FMPXMLRESULT>
    </xsl:template>
</xsl:stylesheet>

答案 2 :(得分:0)

设置python,keras以及它们之间的任何东西时,我都遇到相同的错误。 背景: 我安装了anaconda,然后按照https://www.youtube.com/watch?v=z0qhKP2liHs的说明进行操作,并按照http://docs.anaconda.com/anaconda/user-guide/faq/#how-do-i-get-the-latest-anaconda-with-python-3-5

的说明将其降级为python 3.6

从Jupyter运行时,我遇到了与作者相同的问题 我可以通过以下方式解决我的问题: -每https://docs.anaconda.com/anaconda/packages/py3.6_win-64/

上传python 3.6的熊猫版本
  • 然后我从命令行运行python ..它有效

  • 然后我用PyCharm进行了测试..它有效

似乎是Anaconda和Jupyter的组合不起作用,或者选择了熊猫版本都可以。

答案 3 :(得分:0)

由于tslib已不支持最新版本的pandas。尝试删除pd.tslib.Dataframe并替换为ggplot库中存在tslib的pd.DataFrame。它有效!!

您可以在ggplot文件夹的lib文件中找到软件包。

谢谢!

答案 4 :(得分:0)

不确定这是否是一个详尽的答案,但似乎相关。

我在从源代码构建 Python 时遇到了这个问题(你也是吗?)然后使用它为我的应用程序构建安装程序 - 在某些时候我设法从 OP 中获得了异常:

ImportError: C extension: No module named 'pandas._libs.tslib' 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 REPL(即 import pandas._libs.tslib)中导入有问题的模块。结果证明这是一项有用的努力,因为我得到的可能是缺少 _bz2 的错误。

到那时,我已经完成了在运行 Python 的 ./configure 之前需要存在的 a good number of Linux packages 的安装,以便将它们包含在内(例如,为了 pip 运行良好) ,而且很明显我错过了另一个包裹。

确实,正如发现here针对该错误所建议的那样,一个简单的

sudo apt-get install libbz2-dev

并重新运行 ./configure, make, make install 使我陷入最终愿意加载 pandas 的境地。

然而,现在它抱怨缺少 lzma 扩展 :) 这就是生活:

UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.

从我的角度来看,这最终似乎是一个软错误(应用程序启动耶!)

我的推测性解释是,由于在构建时缺少可用于 Python 的 bzip2,然后又丢失了,无论 Pandas 是否正确地将其评估为展示,都会出现轻微的误导性错误并且无法加载 -塞子错误。可能这是一种罕见的情况,从一个很常见/直观的修复开始,他们可能已经停止维护它,现在还不够电视?


更新:如果有人想知道,lzma 依赖警告可以通过 sudo apt-get install liblzma-dev 看到 UserWarning: Could not import the lzma module. Your installed Python is incomplete 并在我的情况下重建 Python 和 PyInstaller 打包的应用程序来缓解,通过这包括重新安装 Pandas。