Python 3.x 如何修复导入错误:无法导入名称';测试方法';从';测试';

Python 3.x 如何修复导入错误:无法导入名称';测试方法';从';测试';,python-3.x,cmd,Python 3.x,Cmd,我编写了一个简单的类“Test.py” 我想从命令提示符执行类的方法 我正在使用以下命令进行相同的操作 python -c "from Test import testMethod; testMethod()" 我得到以下错误 Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: cannot import na

我编写了一个简单的类“Test.py”

我想从命令提示符执行类的方法

我正在使用以下命令进行相同的操作

python -c "from Test import testMethod; testMethod()"
我得到以下错误

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'testMethod' from 'Test'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:无法从“测试”导入名称“testMethod”

通过给Python文件指定类名,您可以帮助我识别using

中命令中的问题吗?理解Python导入可能会让您有点头疼。如果不将类引用到其原始文件,则无法导入类
Test
。 现在,为了能够导入类(以及它的方法),您需要首先“告诉”Python类的位置。在我的示例中,该文件名为
foo.py
,位于
~/
目录中

#foo.py
类测试():
def测试方法():
打印(“执行的测试方法”)
然后,您可以从相同的目录(
~/
)运行以下命令:

python-c“来自foo导入测试;Test.Test\u方法()
您的输出应该是:

>>> Executed test method

您需要确保在命令行执行级别可以找到您的
Test
类。关于Python导入,有很多很好的答案,例如,如果在运行(而不是导入)脚本时,您的目标是执行特定的函数,那么您可以使用
If\uuu name\uuu==“\uuu main\uuu”
条件感谢@MatBBastos提供了解决方案。是的,我现在能够获得所需的输出。因为我来自Java背景,所以我希望类和文件名应该匹配。你有没有什么好的参考资料可以详细解释两者的区别。我明白了。在Python中,一个文件中可以有多个类,文件名不需要与任何类匹配。通常,该文件被视为一个“模块”,可以有任意名称,其中可以有类(及其方法),甚至可以有没有类的函数。导入时,确保Python能够唯一标识当前环境中的元素(类、方法、函数、属性等),这一点很重要。是Python中约定的主要参考。如果您想用Python进行打包,我发现这是一个不错的开始参考。此外,在谈论Python时,通常官方文档是一个很好的地方。感谢您的支持
>>> Executed test method