【问题标题】:ModuleNotFoundError: No module named 'pandas._libs.interval'ModuleNotFoundError:没有名为“pandas._libs.interval”的模块
【发布时间】:2022-01-23 20:52:40
【问题描述】:

突然,我无法在 python 中导入熊猫。我正在使用anaconda作为包管理器,但似乎无论我卸载和安装pandas多少次,我仍然得到同样的错误:

(base) C:\>conda install pandas
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\au207178\Anaconda3

  added / updated specs:
    - pandas


The following NEW packages will be INSTALLED:

  blas               pkgs/main/win-64::blas-1.0-mkl
  bottleneck         pkgs/main/win-64::bottleneck-1.3.2-py38h2a96729_1
  intel-openmp       pkgs/main/win-64::intel-openmp-2021.4.0-haa95532_3556
  mkl                pkgs/main/win-64::mkl-2021.4.0-haa95532_640
  mkl-service        pkgs/main/win-64::mkl-service-2.4.0-py38h2bbff1b_0
  mkl_fft            pkgs/main/win-64::mkl_fft-1.3.1-py38h277e83a_0
  mkl_random         pkgs/main/win-64::mkl_random-1.2.2-py38hf11a4ad_0
  numexpr            pkgs/main/win-64::numexpr-2.8.1-py38hb80d3ca_0
  numpy              pkgs/main/win-64::numpy-1.21.2-py38hfca59bb_0
  numpy-base         pkgs/main/win-64::numpy-base-1.21.2-py38h0829f74_0
  pandas             pkgs/main/win-64::pandas-1.3.5-py38h6214cd6_0


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(base) C:\>python
Python 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\__init__.py", line 22, in <module>
    from pandas.compat import (
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\compat\__init__.py", line 15, in <module>
    from pandas.compat.numpy import (
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\compat\numpy\__init__.py", line 7, in <module>
    from pandas.util.version import Version
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\util\__init__.py", line 1, in <module>
    from pandas.util._decorators import (  # noqa
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\util\_decorators.py", line 14, in <module>
    from pandas._libs.properties import cache_readonly  # noqa
  File "C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas\_libs\__init__.py", line 13, in <module>
    from pandas._libs.interval import Interval
ModuleNotFoundError: No module named 'pandas._libs.interval'

我也尝试过运行“conda update conda”。

接下来要做什么?

更新:

我检查了,文件肯定在那里,在“C:\Users\au207178\AppData\Roaming\Python\Python310\site-packages\pandas_libs\interval.pyx”中。

但是,我注意到该库的部分路径显示为“python310”。但是,我的 python 版本是 3.8.8。尝试导入 pandas._libs.interval 时,python 是否有可能以某种方式寻找错误的位置?我已经尝试过 python 3.10(甚至无法安装 pandas)和 python 3.9.7(没有效果)。

我也试过 conda install --revision 0,也没有效果...

【问题讨论】:

  • 你可能安装了多个python,当你自己运行python命令时,它运行在系统PATH中有快捷方式
  • @eshirvana 我该如何检查?

标签: python pandas anaconda


【解决方案1】:

是的,它似乎正在从用户级安装加载pandas。用户级安装可能会泄漏到 Conda 环境中并导致不可预测的行为,例如您所看到的。

我知道有两种行动路线。您可能想先尝试第二个,这将确认原因。但是,第一个选项可能更易于管理,因为一旦完成,问题就应该得到解决。

选项 1:删除外部 Python

如果您希望 Conda 按预期工作,请卸载用户级 Python。请注意,检测到的一个(Python 3.10)可能不是唯一的一个,因此您可能需要追踪多个副本。我不在 Windows 上,所以我无法建议具体的卸载步骤。

但是,您可能已经将此用户级 Python 用于其他项目,因此此选项可能不可行。

选项 2:使用隔离标志启动 Python

Python 提供了一些相关标志,使其忽略可能导致其他site-packages 泄漏的各种来源。以下是三个重要的:

$ python --help
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
...
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S     : don't imply 'import site' on initialization
...

单独或一起尝试,看看是否能解决问题。个别地,您可以缩小范围是由于PYTHONPATH(单独-E 可以解决)还是通用用户级搜索(单独-s 可以解决)。


其他想法

我觉得奇怪的是 Python 3.10 安装泄漏到 Python 3.8 解释器运行中。通常,site 模块仅在匹配的主要+次要版本中加载(例如,3.8 应该只选择另一个 3.8)。这可能表明正在发生其他事情。也许设置了PYTHONPATH 环境? (它真的不应该。)

一般来说,我不建议使用 base 环境进行工作。 Anaconda 文档中从未记录过这一点,但这是许多长期使用 Conda 的用户所面临的痛苦事实,通常是在他们的 base 损坏或因软件包超载而花费了不合理的时间之后升级 conda 软件包。相反,创建一个新环境并默认激活它而不是 base

【讨论】:

  • 谢谢 :) 我正在尝试使用#1,我真的不打算进行多个安装。实际上,当问题发生时我并没有在基地工作,我只是在尝试制作 MWE 时切换到它 :) 一旦我得到错误消失,我会接受这个答案
猜你喜欢
  • 1970-01-01
  • 2021-02-06
  • 2020-09-02
  • 2018-05-16
  • 2023-02-09
  • 2019-02-13
  • 1970-01-01
  • 2019-04-12
  • 2020-12-02
相关资源
最近更新 更多