python Import Error: cannot import name SystemRandom

文章讲述了在运行Python项目时遇到ImportError,由于同目录下存在名为random.py的文件,导致Python解析器混淆。通过重命名random.py文件并使用findstr命令查找及修改所有导入该文件的代码,成功解决了问题。
摘要由CSDN通过智能技术生成

一、前言

今天运行项目里面的文件,发现我简单的调试都不行,导入包就是不行,但是我新建一个窗口,把运行文件复制到另一个目录下就可以,就很奇怪。
报错信息如下:

File "mtrand.pyx", line 1, in init numpy.random.mtrand
File "bit_generator.pyx", line 43, in init numpy.random.bit_generator
ImportError: cannot import name SystemRandom

它的意思应该就是不能导入系统的Random模块

二、解决方法

我重新安装了random 但是没有用还是提示这个
后来上网查看寻找原因:大家提到的都是文件命名不规范命名为了random.py,但是我确定我这个文件名肯定正确。
在这里插入图片描述
我运行的文件是:connect_and_merge_image.py
但是查看文件名的时候我发现了我同目录下竟然有一个random.py的文件!
原因就出来了:正是因为这个文件名的原因导致python解析器不知道该导入哪个
把这个文件文件名改了就行

三、改名之后带来的问题解决

因为改了名,如果用到了这个文件,后面在导入的时候肯定会报错,我们需要去找到那些文件导入这个random.py,但是一个项目往往很大,往往也记不太清哪里导入了这个random.py
我们可以打开该项目文件所在目录,执行命令:

findstr /s /i /c:"import random" /c:"from random" *.py 

这样可以找到所有导入了random的文件
然后再去核对是否真的使用了这个改名前的random.py文件,然后修改
命令解释:
/s 参数表示在子目录中搜索
/i 参数表示不区分大小写
/c 参数表示指定要搜索的字符串
*.py 表示只搜索 .py 后缀的文件

在本命令中,我们同时搜索了 import random、from random 两个字符串,以便找出所有与 random.py 文件相关的导入语句。可以根据需要自行修改。

四、总结

bug解决
-----------------------------转载请注明出处---------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值