一、前言
今天运行项目里面的文件,发现我简单的调试都不行,导入包就是不行,但是我新建一个窗口,把运行文件复制到另一个目录下就可以,就很奇怪。
报错信息如下:
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解决
-----------------------------转载请注明出处---------------------------