Python在同一目录中创建/导入自定义模块
我正在尝试创建一个简单的Python脚本,并导入几个自定义的类。我想把这些都放在一个模块里。以下是我的文件结构:
point/point.py
class Point:
"""etc."""
point/pointlist.py
class PointList:
"""etc."""
point/__init__.py
from . import point, pointlist
script.py
import sys, point
verbose = False
pointlist = PointList()
当我运行 script.py
时,出现了 NameError: name 'PointList' is not defined
的错误。
奇怪的是,在point/文件夹里,所有三个模块文件(__init__、pointlist、point)都有了一个之前没有的 .pyc
版本,这说明它似乎找到了这些文件。而且这些类文件本身也没有任何错误地编译。
我觉得我可能遗漏了一些非常简单的东西,所以请耐心点。
1 个回答
12
抱歉,我好像在之前的回答和评论中犯了个错误:
这里的问题是,你应该通过你导入的模块来访问point
里的对象:
point/__init__.py
:
from point import Point
from pointlist import PointList
script.py:
import sys, point
verbose = False
pointlist = point.PointList()
你可以通过导入point
来访问PointList
,因为point
会导入__init__.py
里面的内容。
如果你想直接访问PointList
和Point
,可以在script.py
中使用from point import Point, PointList
,或者不太推荐的方式from point import *
。
再次为我之前的错误表示歉意。