【问题标题】:Indentation error while creating a package创建包时出现缩进错误
【发布时间】:2019-12-31 21:36:59
【问题描述】:

我正在尝试创建一个像这样的简单包:

areas
    __init__.py
    circunferencia.py
    rectangulo.py

我将此文件保存为area.py。 circunferencia.py 包含以下内容:

PI=3.1415
def area(r):
    return PI*r**2

还有矩形:

def area(a):
    return a*a

我创建另一个 .py:

import areas
print(areas.circunferencia.area(3))
print(areas.rectangulo.area(2))

当我尝试运行我的包时,它给了我这个错误

    __init__.py
    ^
IndentationError: unexpected indent

我不明白代码有什么问题,你能帮帮我吗?谢谢!

【问题讨论】:

  • areas 应该是系统上的文件夹/目录,而不是文件,其中包含您的 python 文件(__init__.py、circunferencia.py rectangulo.py)
  • 等等,areas__init__.py 文本的第一个位是来自您尝试运行的实际文件吗?错误消息看起来像是您正在尝试实际执行它。这就是您的目录结构应该是什么样子,而不是您应该实际放入 .py 文件中的文本。
  • 包由目录结构定义,进入子目录去__init__.py文件和实现功能的whatever.py文件。见packaging.python.org/tutorials/packaging-projects
  • 谢谢,所以我将它保存在 \AppData\Local\Programs\Python\Python37\Lib\site-packages 中一个名为“areas”的文件夹中,然后放在那里 circunferencia.py 和rectangulo.py。我称为 area.py 的文件应该称为 init.py?

标签: python module package syntax-error ident


【解决方案1】:

如果你想创建一个包。例如,在您当前的项目目录(/home/jack/pyproject)上,您可以创建一个名为 area 的文件夹,然后将所有 python 文件放入该文件夹中,其中包含文件 __init__.py,以便您可以在处理时导入包(@ 987654324@)。

如果你想从另一个目录导入包,那么你可以将/home/jack/pyproject的路径添加到PYTHONPATH环境变量中。 因此您无需将其添加到您的站点包中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2020-09-04
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多