【问题标题】:Pandas importing error " ImportError: cannot import name 'DtypeArg' from 'pandas._typing' "Pandas 导入错误“ImportError: cannot import name 'DtypeArg' from 'pandas._typing'”
【发布时间】:2021-09-28 11:00:30
【问题描述】:

当我尝试导入 pandas 时,它会引发错误。我无法导入pandas。我重新安装了 pandas,但它总是抛出同样的错误。

我尝试在本地提示符和 jupyter 笔记本中运行它。我认为它可能与 pip 版本冲突,所以我从 pip 中删除了包。目前我只有 conda 版本,但仍然有同样的错误。我能做什么?

 Traceback (most recent call last):
  File "havatahmin.py", line 1, in <module>
    import pandas as pd
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\__init__.py", line 144, in <module>
    from pandas.io.api import (
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\io\api.py", line 8, in <module>
    from pandas.io.excel import ExcelFile, ExcelWriter, read_excel
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\io\excel\__init__.py", line 1, in <module>
    from pandas.io.excel._base import ExcelFile, ExcelWriter, read_excel
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\io\excel\_base.py", line 33, in <module>
    from pandas.io.parsers import TextParser
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\io\parsers\__init__.py", line 1, in <module>
    from pandas.io.parsers.readers import (
  File "C:\Anaconda\envs\ED\lib\site-packages\pandas\io\parsers\readers.py", line 17, in <module>
    from pandas._typing import (
ImportError: cannot import name 'DtypeArg' from 'pandas._typing' (C:\Anaconda\envs\ED\lib\site-packages\pandas\_typing.py)

【问题讨论】:

    标签: python pandas import anaconda importerror


    【解决方案1】:

    我确认,这是pandas==1.3.1 中的可重现错误。

    一种解决方法是将其降级到某个早期版本,例如pip install pandas==1.3.0.

    可以在我们的支持 python (3.8) CUDA 的容器的 build 20210717 中测试该方法:

    docker run -d --rm --name ml-gpu-py38-cuda112-cust -p 8888:8888 -v /home/mir:/home/jovyan mirekphd/ml-gpu-py38-cuda112-cust:20210717 && docker logs -f ml-gpu-py38-cuda112-cust
    

    是否已经在 Github 上向 pandas 开发者报告?

    更新:问题仍然存在,因此我在 #42506 中向 Pandas 开发人员提供了一个可重现的示例。

    【讨论】:

    • 我还安装了 python-dateutil 和 pytz。它解决了问题。
    【解决方案2】:

    发生此错误的原因有多种。

    • pip install pandas --ignore-installed 将在1.3.01.3.1 之间破坏pandas,因为它不会从site-packages 中删除旧文件,因此会出现导入错误。如果是这种情况,您可以重新安装不带此标志的 pandas。
    pip install --force-reinstall pandas
    
    • 混合 conda 和 pip 也可能破坏 pandas,如 here 所述。就此而言,如果您使用 conda,请尝试坚持使用它然后使用 pip 安装缺少的软件包。有关如何use pip in a Conda environment 的更多指南。

    【讨论】:

    • Pandas 可以说应该对这样的多个版本共存具有鲁棒性。对于各种软件包,我已经多次发生这种情况,没有混合安装程序(仅限 pip)或使用特殊的安装标志。例如,用户可以在本地(在用户文件夹中)安装自己的库版本,并在他们使用此文件夹运行的 Docker 容器中安装另一个库。
    • 我明白你在说什么,但我没有看到你会处理多个版本的 Pandas 的任何场景。
    猜你喜欢
    • 2021-09-30
    • 2013-01-03
    • 2023-02-07
    • 1970-01-01
    • 2022-08-15
    • 2020-04-08
    • 2019-07-20
    • 2020-07-16
    • 2019-06-10
    相关资源
    最近更新 更多