chumpy+py3 报错 numpy

本文记录了在Python 3.9 和 CUDA 11环境下安装Chumpy库遇到的与Numpy版本兼容性问题及解决方案。作者最初安装Chumpy 0.70版本时遇到错误,通过调整Numpy版本到1.23解决了问题。

我是py39 cuda11的配置,之前听说chumpy 库只有py2的,我想着9023了应该出py3的兼容了吧,

然后直接pip install chumpy ,装的是0.70的chumpy,然后就报错

cannot import name 'bool' from 'numpy' (/home/xxx/miniconda2/envs/xxx/lib/python3.9/site-packages/numpy/__init__.py)

我还没细想这个Bug,觉得是chumpy的问题,然后就卸载了0.7的,装了0.65的chumpy,事实证明0.65的chumpy还是针对py2的,所以代码上有很多不兼容的问题,print啥的,改来改去非常麻烦。然后我再看了下这个bug,应该是numpy的问题,我看了下自己的numpy是1.25的,然后看了下这个项目的environment.yml 写的是1.23的numpy,遂装过numpy,然后就没有再出现上面的bug

顺带一提, 安装pytorch3d最简单方法是

git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d && pip install -e .

### 关于 LlamaFactory 安装 Numpy 的解决方案 LlamaFactory 是一种基于大模型的开发框架,在安装过程中可能会遇到依赖库的相关错误。以下是针对 `AttributeError: module 'numpy' has no attribute 'float'` 和其他可能关联问题的具体分析与解决方法。 #### 错误原因解析 Numpy 中出现 `module 'numpy' has no attribute 'float'` 的主要原因是版本兼容性问题[^1]。具体来说,Python 3.8 及以上版本中移除了某些浮点类型的别名(如 `np.float`),而这些别名在较旧版本的 NumPy 中仍然存在。如果项目代码或其依赖项未及时更新以适配新版本,则会引发上述错误。 此外,`ModuleNotFoundError: No module named 'torch._six'` 表明 PyTorch 的部分子模块缺失或不匹配当前环境配置[^2]。这通常是因为使用的 PyTorch 版本过低或者环境中缺少必要的组件。 --- #### 解决方案 ##### 方法一:降级 NumPy 至兼容版本 可以通过指定较低版本的 NumPy 来规避此问题。执行以下命令来安装特定版本: ```bash pip install numpy==1.20.3 ``` 该操作可以确保所用的 NumPy 版本支持已弃用的功能调用方式。 ##### 方法二:升级 Python 或调整代码逻辑 对于更高版本的 PythonNumPy 组合,推荐修改涉及 `np.float` 类型定义的部分代码为显式的类型声明,例如将 `np.float` 替换为 `float` 或者更具体的类型如 `np.float64`。这种做法不仅解决了兼容性问题,还提高了代码可读性和健壮性。 示例修正前后的对比如下: - 原始写法 (可能导致错误): ```python import numpy as np value = np.array([1, 2], dtype=np.float) ``` - 修改后 (适用于最新版 NumPy): ```python import numpy as np value = np.array([1, 2], dtype=float) ``` ##### 方法三:重新构建虚拟环境并清理缓存 有时本地 pip 缓存文件损坏也可能导致类似的异常行为。建议按照以下步骤重置工作区: 1. 删除现有虚拟环境; 2. 创建新的虚拟环境; 3. 使用最新的依赖清单重新安装所有包。 创建和激活虚拟环境的过程如下所示: ```bash # 创建名为 venv 的虚拟环境 python -m venv venv # 激活虚拟环境 source venv/bin/activate # Linux/MacOS venv\Scripts\activate # Windows # 更新 pip 并清除缓存 pip install --upgrade pip pip cache purge # 根据需求安装必要软件包 pip install torch numpy llamafactory ``` ##### 方法四:处理 PyTorch 子模块丢失的情况 关于 `No module named 'torch._six'` 这类提示,最直接的办法就是确认正在运行的应用程序是否需要特别定制的老版本 PyTorch 。如果是这样,请尝试通过官方文档找到对应历史发行版链接下载适合目标平台架构的 wheel 文件手动完成部署。 另外也可以考虑切换到稳定分支上的主流发布版本从而获得更好的长期维护保障。 --- ### 总结 综上所述,当面临 LlamaFactory 安装期间因 NumPy 导致的各种报错情况时,可以从多个角度入手解决问题——包括但不限于回退至稳定的旧版本、优化源码中的数据结构表达形式以及彻底刷新整个工具链生态体系等等措施相结合的方式达成最终目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值