2011-08-27 82 views
9

我试图创建一个简单的Python脚本,并引入两个自定义类的。我想将它作为一个模块来完成。以下是我有:Python中创建相同的目录/导入自定义模块

点/ point.py

class Point: 
    """etc.""" 

点/ pointlist.py

class PointList: 
    """etc.""" 

点/ __ init__.py

from . import point, pointlist 

script.py

import sys, point 
verbose = False 
pointlist = PointList() 

当我运行script.py我得到NameError: name 'PointList' is not defined

有什么奇怪的是,在点/,所有三个模块文件(__init__,pointlist,点)已经创建了一个.pyc版本,这是以前没有的,所以它看起来像它正在查找这些文件。类文件本身也编译时没有任何错误。

我觉得我可能失去了一些东西很简单,所以请多多包涵。

+0

Python是大小写敏感的 - 这是你的问题一个错字,或实际的错误? –

+0

你在哪里看到错字? –

+0

我的坏 - 没有正确阅读。 –

回答

12

对不起,我好像在我前面的回答和评论已经做出了错误:

这里的问题是,你应该通过模块访问point对象导入:

point/__init__.py

from point import Point 
from pointlist import PointList 

script.py:

import sys, point 
verbose = False 
pointlist = point.PointList() 

您可以通过导入point如果您要访问PointListPoint直接,你可以在script.py使用from point import Point, PointList或进口无论是在__init__.py

访问PointList最少的最好from point import *

再次,对不起,我刚才的错误。

+0

我试图重新命名'point'(目录)'points'和更改脚本代码'进口SYS,points'和它一模一样的效果(仍然是所有三个文件中创建点pyc文件/) –

+0

当我将其改为'from。导入点,pointlist.PointList'我得到'SyntaxError:无效的语法' –

+0

我修改了我的答案,我以前没有。 – immortal

相关问题