踩坑--常见的报错

本文主要介绍了在Python编程中常见的几个错误,包括scipy和pillow的安装问题、tensorflow版本导致的属性错误、DLL加载失败及环境变量配置、以及代码缩进错误。针对这些问题,文章提供了详细的解决方案,如如何正确安装库、调整环境变量和修复代码格式。
部署运行你感兴趣的模型镜像

错误一

AttributeError: module 'scipy.misc' has no attribute 'imread'

出现此错误的原因在于scipy与pillow没有安装或者版本不正确。

如果使用的pycharm编写代码,那么可以直接在pycharm里安装scipy(如果之前已经安装过,但是版本不对,那么直接点install package进行安装覆盖旧版本即可),这里版本要选择1.1.0
如果没有使用pycharm进行开发,那么可以以下指令安装scipy

pip install scipy==1.1.0

此外还需要安装pillow,安装最新的版本即可
在这里插入图片描述

pip install Pillow

错误二

AttributeError: module 'tensorflow' has no attribute 'assign'
AttributeError: module 'tensorflow' has no attribute 'global_variables_initializer'

出现以上错误的原因是因为使用的tensorflow版本过高,新版本的tensorflow中assign和global_variables_initializer的调用方式与旧版本不同。这里建议直接重新安装旧版本的tensorflow。

建议安装版本是1.4.0,但是在pycharm里提供的默认下载源里,1.4.0已经不提供下载了。这里可以安装1.13.0rc1版本
在这里插入图片描述

错误三

DLL load failed: 找不到指定的模块

出现这个问题的原因可能有很多种。
常见的原因是python的环境变量配置问题,如果这里使用的是python那么请检查python的环境变量配置情况。如果使用的是Anacond,也同理检查环境变量的配置。

也可在Pycharm内部添加环境变量,Run > Edit Configurations > Environment Variables,添加PATH=${Anaconda的根路径}\Library\bin
详细操作可参考此处

错误四

TabError: inconsistent use of tabs and spaces in indentation
IndentationError: expected an indented block

python是一门对缩进非常敏感的语音。出现缩进误用或者tab与空格混用的情况便会出现如上错误。
本实验提供的代码中有tab与空格混用的现象,在复制时请做好处理。

pycharm会自动对缩进不规范的地方进行标记。

这里可以将鼠标放在黄色的方形标记上,然后选择Convert indents to spaces
pycharm便会自动帮我们将tab转换为空格
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

<think> 唔,用户这次遇到了RabbitMQ添加用户时返回405状态码的问题。从引用内容来看,用户之前似乎在处理500错误,但这次是全新的405错误,需要重新分析。 405状态码在HTTP协议中明确表示“方法不允许”,结合RabbitMQ管理接口的特性,这通常意味着用户使用了错误的HTTP方法调用API。比如应该用PUT却用了POST,或者反之。 用户可能正在通过命令行、管理界面或脚本操作,突然遇到这个报错有点困惑。特别是引用里提到的都是500错误解决方案,对用户帮助不大。需要给ta明确区分405和500的本质差异:405是请求方法错误,500则是服务器内部故障。 考虑到用户身份应该是运维或开发人员,解决方案要侧重技术准确性。核心思路是: 1)确认官方文档要求的HTTP方法 - 创建用户必须用PUT 2)检查请求格式 - URI格式应该是/api/users/{name} 3)权限验证 - 操作账号需有管理员权限 用户可能遇到的具体场景包括: - 在用curl命令时写错了参数顺序(比如误用-X POST) - 通过管理界面操作时浏览器缓存导致请求方法错乱 - 自动化脚本中硬编码了错误的方法类型 要特别提醒用户注意RabbitMQ 3.8版本后对PUT/POST的严格区分,这是常见点。给出的curl示例必须包含完整的-H认证头,因为实际中很多人会漏掉content-type。 备用方案里提及15672端口和重启服务也很重要,有些特殊情况确实是端口冲突或内存泄漏导致的异常报错。最后建议用户检查插件状态,因为管理功能依赖management插件。 用户似乎比较着急(提到领导催促),所以要把最直接的解决方案放在前面,先解决PUT方法的问题,再展开其他可能性。 </think> RabbitMQ 添加用户时出现 `Management API returned status code 405` 错误,通常表示 **HTTP 方法不正确**。以下是系统性的解决方案: --- ### **主要原因与解决方案** #### 1. **HTTP 请求方法错误** - **原因**:RabbitMQ 管理 API 创建用户**必须使用 `PUT` 方法**,但用户可能误用了 `POST` 或 `GET`。 - **解决**: 通过命令行添加用户时,使用 `PUT` 方法并指定正确的 URI 格式: ```bash curl -i -u {管理员用户名}:{密码} -X PUT \ -H "Content-Type: application/json" \ -d '{"password":"{新用户密码}", "tags":"{角色}"}' \ http://localhost:15672/api/users/{新用户名} ``` - **参数说明**: - `{角色}`:填写用户权限标签(例如 `administrator`、`monitoring`) - **URI 必须严格包含 `/api/users/{用户名}` 格式** > ✅ 正确示例: > `curl -i -u admin:123456 -X PUT -d '{"password":"user_pass","tags":"management"}' http://localhost:15672/api/users/new_user` #### 2. **URI 路径或参数错误** - **检查点**: - 确认 URI 包含完整的路径 `/api/users/{用户名}` - 确保 `{用户名}` 不含特殊字符(如 `@`、`空格`),建议用英文+数字组合 - 端口号默认是 `15672`(管理插件端口) #### 3. **权限不足** - 执行命令的账号需具有 **管理员权限**(`administrator` 标签): ```bash # 检查当前用户权限 curl -u {用户名}:{密码} http://localhost:15672/api/whoami ``` 若返回的 `tags` 字段不包含 `administrator`,需用管理员账号操作。 #### 4. **管理插件未启用** - RabbitMQ 管理功能依赖 `rabbitmq_management` 插件: ```bash # 进入容器或RabbitMQ安装目录 rabbitmq-plugins enable rabbitmq_management ``` --- ### **备用排查步骤** 1. **重启 RabbitMQ 服务**: ```bash rabbitmqctl stop_app rabbitmqctl start_app ``` 2. **检查端口冲突**: - 确认 `15672` 端口未被其他进程占用: ```bash lsof -i :15672 # Linux/Mac netstat -ano | findstr :15672 # Windows ``` 3. **验证用户是否已存在**: ```bash curl -u admin:123456 http://localhost:15672/api/users ``` 若用户已存在,会返回 `405`;需先删除旧用户: ```bash curl -i -u admin:123456 -X DELETE http://localhost:15672/api/users/{用户名} ``` --- ### **总结流程** ```mermaid graph TD A[报错405] --> B{检查HTTP方法} B -->|方法非PUT| C[改用PUT请求] B -->|方法正确| D{检查URI格式} D -->|URI错误| E[修正为 /api/users/用户名] D -->|URI正确| F{检查权限} F -->|权限不足| G[使用管理员账号操作] F -->|权限足够| H{检查用户是否存在} H -->|存在| I[删除后重试] H -->|不存在| J[启用管理插件或重启服务] ``` > ⚠️ 若仍失败,检查 RabbitMQ 日志定位细节: > `tail -f /var/log/rabbitmq/rabbit@localhost.log`(路径因系统而异)。 --- ### **相关问题** 1. RabbitMQ 创建用户时如何分配权限标签(如 `administrator`)? 2. 如何通过 RabbitMQ 管理界面批量操作用户? 3. RabbitMQ 的 HTTP API 返回 `401 Unauthorized` 应如何解决? 4. 如何监控 RabbitMQ 的用户登录和操作日志?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值