首页 > 编程问答 >如何更新 numpy 2 的 python 模块?

如何更新 numpy 2 的 python 模块?

时间:2024-07-29 08:33:23浏览次数:9  
标签:python pandas linux numpy

在带有 pip 的 Linux 上,新的 numpy 2 似乎可以很好地与 pandas 配合使用:

$ python3 -c 'import numpy as np; print(np.__version__); import pandas as pd; print(pd.__version__)'
2.0.1
2.2.2

但是,在带有 miniconda 的 Windows 上,我得到

$ ${localappdata}/miniconda3/envs/c312/python.exe -c 'import numpy as np; print(np,np.__version__); import pandas as pd; print(pd,pd.__version__)'
<module 'numpy' from '${localappdata}\\miniconda3\\envs\\c312\\Lib\\site-packages\\numpy\\__init__.py'> 2.0.1

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.1 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "<string>", line 1, in <module>
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\__init__.py", line 26, in <module>
    from pandas.compat import (
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\compat\__init__.py", line 27, in <module>
    from pandas.compat.pyarrow import (
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\compat\pyarrow.py", line 8, in <module>
    import pyarrow as pa
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pyarrow\__init__.py", line 65, in <module>
    import pyarrow.lib as _lib
AttributeError: _ARRAY_API not found

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.1 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "<string>", line 1, in <module>
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\__init__.py", line 49, in <module>
    from pandas.core.api import (
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\core\api.py", line 9, in <module>
    from pandas.core.dtypes.dtypes import (
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pandas\core\dtypes\dtypes.py", line 24, in <module>
    from pandas._libs import (
  File "${localappdata}\miniconda3\envs\c312\Lib\site-packages\pyarrow\__init__.py", line 65, in <module>
    import pyarrow.lib as _lib
AttributeError: _ARRAY_API not found
<module 'pandas' from '${localappdata}\\miniconda3\\envs\\c312\\Lib\\site-packages\\pandas\\__init__.py'> 2.2.2

重新安装( conda install --force-reinstall pandas )没有帮助。

那么,我需要做什么让 numpy2 工作?


在 Windows 上的 miniconda 环境中遇到的问题是由于 pandas 和它所依赖的库(如 pyarrow )的二进制不兼容性导致的,这些库是在 NumPy 1.x 上编译的。简单地重新安装 pandas 可能无法解决问题,因为这取决于如何构建 pyarrow 包。

以下是解决这个问题的几种方法:

1. 使用 NumPy 1.x:

  • 最简单的解决方案是像错误信息中建议的那样,在的 miniconda 环境中降级到与 pyarrow 兼容的 NumPy 版本。可以使用以下命令实现这一点:
conda install "numpy<2"

2. 升级受影响的软件包:

conda install -c conda-forge "pyarrow>=11"  
  • 请注意,可能需要从 conda-forge 频道安装 pyarrow ,因为它可能提供更新的版本。

3. 从源代码构建 pandas 和依赖项:

  • 如果没有与 NumPy 2.x 兼容的预构建 pandas pyarrow 版本,则需要从源代码构建它们。这可能是一个更复杂的选择,需要更深入地了解构建 Python 包。需要安装必要的构建工具和依赖项,然后从源代码构建 pandas

4. 创建一个新的 conda 环境:

  • 创建一个全新的 conda 环境,并安装 NumPy 2.x 和 pandas。这将确保所有软件包都兼容,并且从一开始就使用 NumPy 2.x 构建。
conda create -n myenv python=3.9 numpy=2.0.1 pandas
conda activate myenv

一些额外的提示:

  • 在尝试任何解决方案之前,请确保的 conda 环境已更新:
conda update --all
  • 如果不确定要使用哪种方法,请尝试创建一个新的 conda 环境,并从头开始安装所有软件包。

希望这些解决方案能帮助解决在 Windows 上使用 NumPy 2.x 和 pandas 时遇到的问题。

标签:python,pandas,linux,numpy
From: 78804536

相关文章

  • python BioChemist 数据集的数据字典/描述
    我正在使用生物化学家数据集。我在哪里可以找到包含每个变量描述的“数据字典”?这就是我正在查看的:importpandasaspdfrompydatasetimportdatadata('bioChemists')我已经用谷歌搜索并尝试寻找运算符,但没有运气!pydataset软件包不包含生物化学家数据集的描述......
  • python中的Telebot API不断断开连接
    使用远程机器人,不断断开服务。我暂时让它在发生这种情况时重新启动。下面是我的代码和错误:importrandomimporttelebotfromtelebot.typesimportInlineKeyboardMarkup,InlineKeyboardButtonfromthreadingimportTimer,Eventfromdotenvimportload_dotenvimporto......
  • 来自 PyArrow ChunkedArray 的虚拟编码 PyArrow 表,无需通过 pandas?
    假设我importpyarrowaspaca=pa.chunked_array([['a','b','b','c']])print(ca)<pyarrow.lib.ChunkedArrayobjectat0x7fc938bcea70>[["a","b","b","......
  • 如何用Python制作Android服务?
    我想构建一个简单的Android应用程序,例如PushOver应用程序,它具有TCP服务器并接收其记录的文本消息,然后将其作为推送通知发送。这部分已经完成并且工作正常。但即使GUI应用程序关闭,我也想接收消息。我知道这是可能的,因为PushOver应用程序做到了!我想,我可能需要一......
  • 使用带有广播或各种数组形状的 numpy select
    我有各种数组形状,我尝试使用np.select()。我的代码selected_results适用于这种情况:#Givenarraysresults=[[array(['alpha'],dtype=object)array([0.16134485])array([-2.19302435,0.57976273])array([1.25348942,0.77778261])array([0.56136549,0.......
  • Python Discord Bot 的应用程序命令的区域设置名称(多语言别名)
    如何根据用户的语言设置,使应用程序命令的名称具有不同的名称例如,如果一个用户将其discord的语言设置为英语,则用户可以看到英语的应用程序命令名称。另一方面,如果另一个用户将其不和谐语言设置为法语,则用户可以看到法语中的相同应用程序命令的名称。为此,我尝试使用ap......
  • 如何在Python中添加热键?
    我正在为游戏制作一个机器人,我想在按下热键时调用该函数。我已经尝试了一些解决方案,但效果不佳。这是我的代码:defstart():whileTrue:ifkeyboard.is_pressed('alt+s'):break...defmain():whileTrue:ifkeyboard.is_pr......
  • 在Python中解压文件
    我通读了zipfile文档,但不明白如何解压缩文件,只了解如何压缩文件。如何将zip文件的所有内容解压缩到同一目录中?importzipfilewithzipfile.ZipFile('your_zip_file.zip','r')aszip_ref:zip_ref.extractall('target_directory')将......
  • 如何在Python中从RSA公钥中提取N和E?
    我有一个RSA公钥,看起来像-----BEGINPUBLICKEY-----MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAvm0WYXg6mJc5GOWJ+5jkhtbBOe0gyTlujRER++cvKOxbIdg8So3mV1eASEHxqSnp5lGa8R9Pyxz3iaZpBCBBvDB7Fbbe5koVTmt+K06o96ki1/4NbHGyRVL/x5fFiVuTVfmk+GZNakH5dXDq0fwvJyVmUtGYA......
  • Swagger、Docker、Python-Flask: : https://editor.swagger.io/ 生成服务器 python-fl
    在https://editor.swagger.io/上您可以粘贴一些json/yaml。我正在将此作为JSON进行测试(不要转换为YAML):{"swagger":"2.0","info":{"version":"1.0","title":"OurfirstgeneratedRES......