python运行时报错no module named tensorflow_TypeError:‘module’object is not callable

报错情况:

8448ea2a678468732c894cc72b9c5a43.png

错误原因:自己忘了python中模块和函数的区别。也是在经常使用matlab后,转到python上应用时受matlab思维的影响。

正确调用方式:

acadf77b74c8c2b0180598bb750a174a.png

在电力系统中计算潮流和节点电价的第三方库,在matlab中是matpower,在python的调用中是pypower。matpower和pypower只是用两种语言写成的同一种工具(matpower和pypower里面的函数几乎是一模一样的)。

在matlab的调用如下图所示,可以正常调用运行

e31fd91fe5afd2b3fdbaecd79047f5a4.png

但是在python调用时报错:

8448ea2a678468732c894cc72b9c5a43.png

报错原因是自己忘了python中模块和函数的区别,在python中调用函数是先要导入模块(module)再选择导入的模块中的哪一个函数(function)。

而matlab中是没有这种差别的,因为在matlab中定义函数时函数名和文件名是要求一致的(记得matlab2012-2015版应该都有这要求,但是今天用2017a版的试了一下,发现并没有这个要求),否则(matlab2012-2015版)定义失败。

也就是说,python的一个module中可以有很多可以调用的function,但matlab的一个函数文件中只能有一个用来调用的function(函数文件里面只能有一个主函数,其它函数都是子函数,可以被主函数调用,但不能被其它脚本或函数文件调用)。

打开pypower中函数rundcopf的原码

b9e9badfbf7b419284104590bec624bd.png

打开matlab中函数rundcopf的原码

ce0354ef5b8c13374fa84dcd6daa17e2.png

解决这种问题的办法(注意快捷提示中是module和function):

452e9f22928e29678ef036b93788b3a0.png

bbf4a0268b1884e44b4982ceb628bcf7.png

正确调用方式是:

acadf77b74c8c2b0180598bb750a174a.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值