pycharm用import报错:AttributeError: module tensorflow(or other) has no attribut (import搜索路径顺序问题)

问题描述及解决:

在这里插入图片描述非常简单的import tensorflow模块,但是无法使用模块中的add函数。

分析

说明import找到了tensorflow这个模块,否则会出现ModuleNotFoundError: No module named ‘tensorflow’。问题在于找到的包没有add这个函数。

我使用的编译环境是anaconda中新建的tensorflow虚拟环境,里面安装了tensorflow的包
在这里插入图片描述并且在anaconda的jupyter中用同一个虚拟环境是可以运行的,因此tensorflow模块的安装及虚拟环境的设置是没问题的。

最终解决:

问题在于import导入模块时的路径优先级问题,由于我的python文件命名为tensorflow.py,因此import会首先找到自身的这个tensorflow文件作为模块导入。
我只需要把python文件重命名其他,尽量不使用一些包的名字即可,如下所示:
在这里插入图片描述运行成功!

总结及验证

总结:

  1. import可导入的包括模块与包:
    模块(module)
    用来从逻辑(实现一个功能)上组织Python代码(变量、函数、类),本质就是*.py文件。文 件是物理上组织方式"module_name.py",模块是逻辑上组织方式"module_name"。
    包(module)
    定义了一个由模块和子包组成的Python应用程序执行环境,本质就是一个有层次的文件目录结构(python2要求必须带有一个__init__.py文件)。
    ————————————————
    本段引用自CSDN博主「GentleCP」的文章
    原文链接:https://blog.csdn.net/GentleCP/article/details/87395869

  2. 查看当前环境下import导入模块时搜索的路径顺序:

        import sys
        print(sys.path)
    

    结果如下:
    在这里插入图片描述即import会优先查找本工程所在路径,然后才到anaconda虚拟环境tensorflow中去查找相关的包。

  3. 验证:
    在这里插入图片描述由于之前的python文件中没有定义add函数,所以出现module tensorflow has no attribut add。现在定义了就直接调用了所定义的add函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值