__init__.py在python中无法正常工作

时间:2017-09-20 22:20:50

标签: python python-2.7 python-3.x

我想在python 2.7中创建一个示例包,只是为了清除我的概念,其结构如下所示:

    calculator/
    main.py
    operations/
        file1.py
        file2.py
        __init__.py
        new_operations/
            __init__.py
            file3.py

main.py内容:(此文件存在于计算器文件夹中)

from operations import power
print power(2,2)

__init__.py内容:(此文件存在于操作文件夹中)

from .file1 import add
from .file1 import sub
from .file2 import mul
from .file2 import div

file1.py内容:(此文件存在于操作文件夹中)

def add(a,b):
    return(a+b)

def sub(a,b):
    return(a-b)

file2.py内容:(此文件存在于操作文件夹中)

def mul(a,b):
    return(a*b)

def div(a,b):
    return(a/b)

__init__.py内容:(此文件位于new_operations文件夹中)

from .file3 import power

file3.py内容:(此文件位于new_operations文件夹中)

def power(a,b):
    return(a**b)

现在,当我运行main.py时,我收到了以下错误:

Traceback (most recent call last):
  File "C:\Python27\mycodes\calculator\main.py", line 3, in <module>
    from operations import power
ImportError: cannot import name power

谁能告诉我,我在做什么错?帮助我。

2 个答案:

答案 0 :(得分:1)

在“main.py”文件中使用以下行:

from operations.new_operations import power

答案 1 :(得分:0)

你错过了一个&#39;添加&#39;功能在您的计算器模块中。如果你创建一个&#39;添加&#39;函数,我认为代码可以工作。

也许可以尝试在模块计算器中执行此操作:

Layer 1
-0.0101213033749 1.01375071842
0.0106228883975 1.09375593322
Layer 2
0.0106228883975 1.09375593322
-0.027910206754 1.12216643393
Layer 3
-0.027910206754 1.12216643393
-0.131790078631 1.09698413493

如果您不想在计算时打印,请删除打印声明。

希望这有帮助!