in __init__ match = self._regex.search(version)TypeError: expected string or bytes-like object

in __init__
    match = self._regex.search(version)
TypeError: expected string or bytes-like object

报错位置:File "D:\ProgramData\Anaconda3\envs\people_3d\lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 275

这个错误是  版本不是字符串或字节类型

网上大神有个 解决方案  但是不完全,就是

将match = self._regex.search(version)改为match = self._regex.search(str(version))。

我测试一下

又出现了新错误:

RuntimeError:
The detected CUDA version (11.2) mismatches the version that was used to compile
PyTorch (None). Please make sure to use the same CUDA versions.

CUDA版本与pytorch版本不对应。

走了走了,我先把CUDA的版本与pytorch的版本正好再来

### 解决 `TypeError: expected string or bytes-like object` 错误 当在Python中使用正则表达式模块 (`re`) 进行匹配操作时,如果传递给函数的对象既不是字符串也不是字节类型的对象,则会引发此错误。例如,在调用 `re.search()` 或其他类似的函数时,参数类型不正确就会触发该异常。 通常情况下,这种错误可能是因为传入的数据结构不符合预期所致。比如,期望的是字符串或者字节序列,但实际上却提供了一个列表或者其他不可哈希的复合数据类型[^1]。因此,确保输入到这些方法中的变量确实是字符串或字节形式是非常重要的。 下面是一个简单的例子来展示如何修正这个问题: ```python import re data = ['example text'] # 假设这是我们的原始数据,它实际上应该是个字符串而非列表项。 pattern = r'text' if isinstance(data, list): data = ''.join(map(str, data)) # 如果发现是列表就转换成单个连续字符串 result = re.search(pattern, data) # 正确执行regex查找前先确认data为合适类型 print(result.group() if result else None) ``` 上述代码片段展示了如何处理潜在的类型问题——通过检查并适当调整输入数据的形式使其满足需求从而避免发生错误的情况。 #### 关于跳过测试的功能说明 另外值得注意的一点是在编写单元测试过程中遇到不需要运行特定条件下某些测试场景的时候可以利用装饰器机制实现条件性的忽略功能[^2]。虽然这与当前讨论的主题无直接关联,但对于构建健壮的应用程序来说同样重要。 最后提及一下关于版本迭代的信息作为补充背景知识[^3],对于长期维护项目而言了解软件生命周期规划有助于合理安排资源和技术选型决策过程。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值