【DEBUG】AttributeError: module ‘numpy‘ has no attribute ‘object‘

发布时间:2023年12月18日

error

File “numpy/init.py”, line 305, in getattr
AttributeError: module ‘numpy’ has no attribute ‘object’.
np.object was a deprecated alias for the builtin object. To avoid this error in existing code, use object by itself. Doing this will not modify any behavior and is safe.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
[1995421] Failed to execute script ‘redis’ due to unhandled exception!

solution

1.如果是说仅针对这个问题的话,可能只要把numpy版本降下来就好了。
reference
https://blog.csdn.net/BetrayFree/article/details/134797465
https://github.com/ultralytics/ultralytics/issues/2578
https://wenku.csdn.net/answer/4ea1fc9ee0534fbc874000ce7b90cf65
https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/131430993

others

这里讲讲我遇到的一些其他的问题
我在anaconda里新建了一个环境
conda create -n your_env_name python=x.x
按照Windows上面的依赖版本依次安装了
pip uninstall numpy
pip install numpy==1.19.5
通过上述两步骤后,发现我的打包显示的python还是不是我创建的环境的。
最后发现,切换环境需要在pyinstaller的命令中加-p指定环境路径
流程:

  • conda activate myenv
  • which python (找到路径,到myenv层级即可)
  • pyinstaller -D mywork.py -p /home/anaconda3/envs/myenv/
    这样打包环境就对拉,也就不会报上面的error啦。
    reference:
    https://blog.csdn.net/u012219045/article/details/113612475

learnd from experience

1.尽量一个project建一个environment。
这样不仅可以避免互相版本干扰,还可以减少程序打包被打进去的依赖,使得打包文件夹小一些。
尽量不要所有的项目混用一个environment。
2.可以在服务器上建立一个docker,这个道理就类似建立一个虚机,里面可以装需要的系统,配置相应的环境。
3.如果对方服务器不能联网什么都不支持的话,可以考虑把服务放docker打包成镜像,去运行。

文章来源:https://blog.csdn.net/weixin_46870583/article/details/134978556
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。