Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 命名模块';random.py';导致numpy属性错误_Python_Numpy_Random - Fatal编程技术网

Python 命名模块';random.py';导致numpy属性错误

Python 命名模块';random.py';导致numpy属性错误,python,numpy,random,Python,Numpy,Random,我有一个名为random.py的模块,它导入了numpy,并且我得到了很多奇怪的属性错误,比如AttributeError:module'numpy'没有属性“random”,我通过重命名文件randomness.py将其删除,这样它就不会像普通包一样具有相同的名称 有没有办法解决这样的错误,这样我就不必重命名我的文件了?很多自鸣得意的评论,哎呀。这里,你去,作为纯粹的学术练习-在代码高尔夫的脉络,如果你愿意。不是你真正想用的东西 导入内容时,只需从sys.path中删除当前目录即可。这是pyt

我有一个名为
random.py
的模块,它导入了numpy,并且我得到了很多奇怪的属性错误,比如
AttributeError:module'numpy'没有属性“random”
,我通过重命名文件
randomness.py
将其删除,这样它就不会像普通包一样具有相同的名称


有没有办法解决这样的错误,这样我就不必重命名我的文件了?

很多自鸣得意的评论,哎呀。这里,你去,作为纯粹的学术练习-在代码高尔夫的脉络,如果你愿意。不是你真正想用的东西

导入内容时,只需从
sys.path
中删除当前目录即可。这是python导入系统的常识

从pathlib导入路径
从复制导入deepcopy
导入系统
cur_dir=Path(“.”).resolve()
old_sys_path=deepcopy(sys.path)
sys.path=[x代表sys.path中的x,如果路径(x).resolve()!=cur\u dir]
随机输入
打印(随机._文件_)#检查是否正确随机
将numpy作为np导入
sys.path=旧的系统路径

“医生,我这样做会很痛!”“那就不要这样做。”说真的,不要用Python内置的名字来命名,你只是在招惹麻烦。“但我喜欢这个名字,医生!”说真的,我明白不建议这样做。不过,我仍然在问是否有解决办法。如果没有答案,请不要感到惊讶。当一个问题如此容易避免时,没有人会尝试英雄般的努力来解决问题。我对你如何导入numpy感到困惑,但numpy。随机中断。但是,即使你做错了什么(我不知道,比如从numpy import*),事实是,如果你的模块保持为
random
,你就永远无法导入内置的
random
包,除非你跳过一些障碍。不要那样做。我想说的是,如果可能的话,解决办法并不明显,需要付出巨大的努力才能发现。在一开始就很容易避免问题的时候,没有人会投入这种努力。如果你被迫自己去发现这样一个解决方法,那么祝你好运,但我估计你成功的几率接近于零。我认为这是一种不太可能的英勇努力。做得好。这是因为一旦Python导入一个模块,它就会被缓存,不再被搜索和加载,所以重复的文件就不再重要了。