前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python运行代码不成功_Python | PyCharm无法直接运行(Run)脚本

python运行代码不成功_Python | PyCharm无法直接运行(Run)脚本

作者头像
全栈程序员站长
发布2022-09-27 15:41:54
2.6K0
发布2022-09-27 15:41:54
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

1

刚开始是这样,笔者在PyCharm新建了一个package,然后放了一个脚本

a31e1214c27bd282aae393f53cb1eef97ebd36fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
a31e1214c27bd282aae393f53cb1eef97ebd36fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
4d3d2ab33c4133bae62b31ce6a37c97623bc2ffd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
4d3d2ab33c4133bae62b31ce6a37c97623bc2ffd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

发现无法直接运行:没有Run选项,只有Run unittests选项。于是把脚本拷贝到另一个不是package的目录下

2a1ecb460596b814b4ba87b043d246fe464e22fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
2a1ecb460596b814b4ba87b043d246fe464e22fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

发现在这个目录下,除了这个脚本以外,其余的脚本都是可以运行的

460fdc8333bf3bef7d25620b3f3ea8db564a1afd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
460fdc8333bf3bef7d25620b3f3ea8db564a1afd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
b57fb6db574afa32ddf61e4454b2dc19cf2c14fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
b57fb6db574afa32ddf61e4454b2dc19cf2c14fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

看来是脚本的内容有问题了。看看笔者这个cannot_run的脚本

cf6d451b1edef4dcf65321ac45ecd3d968750cfd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
cf6d451b1edef4dcf65321ac45ecd3d968750cfd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

笔者在Python自带的交互环境IDLE上,运行这个代码,也是正常的。真是把人愁死了,笔者也是Python新手啊~

cfadcdd96975f2c4b0f36bf08f0148fe1f4206fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
cfadcdd96975f2c4b0f36bf08f0148fe1f4206fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

6

然后转念一想,很可能是这个类的命名搞的鬼啊!PyCharm可能默认支持Python自带的单元测试包“unittest”,所以定义类的名字不能包含“test”(大小写不敏感),加下划线什么的都是不行的…

58021a0148fe1e423c013662c2299a88381303fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
58021a0148fe1e423c013662c2299a88381303fd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

7

所以最后要测试的解决办法就是,改名字!太幸运了,一改名字马上右击就提示可以直接运行了。运行也没有再提示单元测试,测试结果正常!

4e168d5653bbf8201091a4b8ba21056105a36efd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
4e168d5653bbf8201091a4b8ba21056105a36efd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
9bc92713e8e5eceec5d68c9ccc704618deda7afd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
9bc92713e8e5eceec5d68c9ccc704618deda7afd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

8

所以最后的结论,单元测试默认是识别定义的类名的。所以尤其注意类名不能出现“test”关键字,注意这里是不区分大小写的。所以学习一门语言,一定的知识面是要有的。下图是在其它环境“主动”进行单元测试的截图

974a2f21056104a32c83b11d63d7592ae2ef6bfd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1
974a2f21056104a32c83b11d63d7592ae2ef6bfd.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174546.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档