gpt4 book ai didi

python - 从 cmd 运行时,“模块”对象没有属性 'py'

转载 作者:太空狗 更新时间:2023-10-29 17:23:51 25 4
gpt4 key购买 nike

我目前正在学习单元测试,我偶然发现了一个奇怪的错误:

如果我从 PyCharm 内部运行我的脚本,一切都会完美无缺。如果我从我的 cmd.exe(以管理员身份)运行它,我会收到以下错误:

enter image description here

这是我的代码:

import unittest

class TutorialUnittest(unittest.TestCase):
def test_add(self):
self.assertEqual(23,23)
self.assertNotEqual(11,12)

# function for raising errors.
def test_raise(self):
with self.assertRaises(Exception):
raise Exception`

最佳答案

只需删除 .py 扩展名即可。

您正在使用 -m 命令行标志运行您的测试。 Python 文档会告诉您更多相关信息,只需查看此 link .

简而言之,-m 选项让您运行一个模块,在您的例子中是 unittest 模块。该模块期望接收遵循 Python 模块路径格式(使用点)的模块路径或类路径。例如,如果您想在 mypackage 文件夹中的 mytests 模块中运行 FirstTest 类,您可以使用以下命令行:

python -m unittest mypackage.mytests.FirstTest

假设您正在从 mypackage 的父文件夹运行前面的命令行。这使您可以精确地选择要运行的测试(甚至在模块内部)。

当您添加 .py 扩展时,unittest 会在最后一个文件中寻找一个 py 对象(如模块或类)您提供的模块路径的元素,但是此对象不存在。这正是您的终端错误告诉的内容:

AttributeError: ’module’ object has no attribute ’py’

关于python - 从 cmd 运行时,“模块”对象没有属性 'py',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com