ImportError: C extension: No module named ‘pandas._libs.tslibs.conversion‘ not built.

    我之前遇到如本文标题所示的PyCharm运行时报错,经网上查找,发现部分网友反馈Python安装的版本从32bit变成64bit时会遇到这个问题。而我确实是从Python 3.6 (32-bit)升级为Python 3.10 (64-bit)。

    备注:Python v3.10.6 64bit无法安装在Win7或更早以前的Windows版本上。用官方的原话说就是:Note that Python 3.10.6 cannot be used on Windows 7 or earlier.

    既然事已至此,遇到“ImportError: C extension: No module named ‘pandas._libs.tslibs.conversion‘ not built.”就想着找方法解决。我遇到的报错Log具体为:ImportError: C extension: No module named ‘pandas._libs.tslibs.conversion‘ 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

    如下图所示,报错:python: can't open file 'C:\\Windows\\system32\\setup.py': [Errno 2] No such file or directory.


    插播一条广告:Anaconda是一个开源的Python发行版本,它包含了conda、Python等180多个科学包及其依赖项。Anaconda提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。它自带了Python、Jupyter Notebook、Spyder等工具,并有一个管理包的conda工具。Anaconda利用conda来进行包和环境的管理,可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理,类似于pip的使用,环境管理则允许用户方便地安装不同版本的Python并可以快速切换。Anaconda也是一个打包的集合,里面预装好了conda、某个版本的Python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。

    以上广告内容来自互联网。


    也就是说:本来可以通过安装Anaconda这个软件来完成各个packages的安装,但是我还是想通过pip install xxx安装各个自己需要的packages。

    于是,

    1、按网上部分网友分享的方法:pip uninstall pandas

    以管理员身份运行命令提示符cmd.exe,输入:pip uninstall pandas,回车,如下图所示,输入:Y,回车,将pandas卸载。

    结果:之后“ImportError: C extension: No module named ‘pandas._libs.tslibs.conversion‘ not built.”的运行时报错确实就没有了。

    2、这时,在PyCharm中运行我的脚本,注意到另一个报错:AttributeError: module 'pandas' has no attribute 'DataFrame',如下图所示。

    原因:参考了网上有网友的解决方法:原因可能出在版本的问题上。较老的版本的pandas会报这个错误,而较新的版本的pandas不会报这个错误。

    解决方法:先用pip卸载pandas,再用pip安装pandas。

pip uninstall pandas
pip install pandas    #如上文提到的:由于我安装的是Python 3.10 (64-bit),这条命令在我这存在严重的问题,应该修改为:pip3 install pandas

    如下图所示,我在更新pip以后,尝试先用pip卸载pandas,结果:卸载失败。

    备注:Python安装包第一次在Windows系统上安装好后,第一次在命令提示符cmd.exe中执行以下命令,会不成功。表现为没什么反应。可以用pip install pandas触发一下pip的功能,之后再执行以下命令升级pip,如下图所示。

python.exe -m pip install --upgrade pip

    如下图所示,我用pip安装pandas,结果:安装失败。

    解决方法:由于我安装的是Python 3.10 (64-bit),这条命令在我这存在严重的问题,应该修改为:pip3 install pandas,问题即可解决,即可正常安装。


  • pip install和pip3 install的区别是什么?

    pip install和pip3 install在一般情况下的效果是一样的,没有区别。它们都是用于安装Python包的命令,作用是安装Python库。

    但是,当你的电脑同时安装了Python 2和Python 3,那么这2个命令就有区别了。pip install是用于Python 2的安装命令,而pip3 install是专门为Python 3安装库的命令。这样设计是为了避免安装冲突。

    总结来说,如果你的电脑只安装了一个Python版本,那么pip和pip3这2个命令的效果是一样的。当你的电脑同时安装了Python 2和Python 3,那么就需要根据对应的Python版本来选择使用pip或pip3命令。

    以上内容来自互联网。


    并且,如下图所示,竟然还提醒我要将pip从20.2.1升级到23.2.1。我刚刚不是明明已经升级过了么?

    3、接着,因注意到在命令提示符cmd.exe中,报错:WARNING: Ignoring invalid distribution -umpy (d:\pythonv3.10\lib\site-packages)。

    想着也去解决这个问题吧。

    原因:numpy包的安装可能有问题,导致pip无法正确读取它的信息。或者,Python环境可能已经损坏,导致pip无法正确读取包的信息。

    备注:因为我曾经从其他我认为包安装得很齐全、很完备的PC上直接Copy了对应的\lib\site-packages,然后在我的电脑上直接复制、粘贴、覆盖/跳过\lib\site-packages。于是,给今天的自己埋下了隐患。

    解决方法:尝试卸载并重新安装numpy包。同上,在命令提示符cmd.exe中,输入:pip uninstall numpy,回车,如下图所示,输入:Y,回车,先将numpy卸载。

    不过,却意外报错了:OSError: [WinError 17] 系统无法将文件移到不同的磁盘驱动器。: 'd:\\pythonv3.10\\lib\\site-packages\\numpy\\.libs\\libopenblas64__v0.3.23-246-g3d31191b-gcc_10_3_0.dll' -> 'C:\\Users\\******\\AppData\\Local\\Temp\\pip-uninstall-st9p05to\\libopenblas64__v0.3.23-246-g3d31191b-gcc_10_3_0.dll',和:PermissionError: [WinError 5] 拒绝访问。: 'd:\\pythonv3.10\\lib\\site-packages\\numpy\\.libs\\libopenblas64__v0.3.23-246-g3d31191b-gcc_10_3_0.dll'。

    4、至此,我不想再在以上问题的解决上再耗费时间了,不知道为什么会有这么多奇奇怪怪的问题。我索性把Python 3.10 (64-bit)从Windows 10系统上卸载掉,然后把安装路径下清空一下,再重新安装Python 3.10 (64-bit)。之后,再安装各个自己需要的packages。

    结果:成功解决以上各种奇奇怪怪的问题。

    弊端:就是要从头开始安装各种自己会用到的packages。

    备注:因为我不想使用\venv\Scripts\python.exe等虚拟环境。我认为一台PC上只要有一处Python解释器即可,不想多点开花,到处都是解释器,浪费我本地磁盘的可用空间。因此,如上文提到的:我的本意也并不想安装Anaconda3。

    5、遇到以下的经典报错如何解决?

>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'

    原因:未安装pandas package。

    解决方法:pip3 install pandas,问题即可解决,即可正常安装。其他packages同理。如果不行,那么就换用:pip install PackageName。或者再尝试2次。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值