为什么我的Python脚本不能识别导入模块中的类?

时间:2021-09-02 23:19:14

collection.py

import sys
import os
import pymongo
from pymongo import MongoClient

class Collection():
    """returns a collection curser from mongodb"""

    client = MongoClient()

    def __init__(self, db, collection_name):
        self.db = db
        self.collection_name = collection_name

    def getCollection(self):
        data_base = getattr(self.client, self.db)
        collObject = getattr(data_base, self.collection_name)
        return collObject

main.py

import sys
import os
import collection

def main():
    pass

if __name__ == '__main__':
    print"Begin Main"

    agents = Collection('hkpr_restore','agents')
    print "agents is" , agents

These files are in the same directory. When I run main.py, however, I get an error:

这些文件位于同一目录中。但是,当我运行main.py时,出现错误:

Begin Main
Traceback (most recent call last):
  File "main.py", line 23, in <module>
    agents = Collection('hkpr_restore','agents')
NameError: name 'Collection' is not defined

From what I've read, if the files are in the same directory, all I need to do is use import collection.

根据我的阅读,如果文件在同一目录中,我需要做的就是使用import collection。

Am I missing something?

我错过了什么吗?

1 个解决方案

#1


You've only imported collection, not Collection.

您只导入了集合,而不是集合。

Either do from collection import Collection, or use the full qualified name when instantiating: agents = collection.Collection('hkpr_restore','agents').

可以从集合导入集合中执行,也可以在实例化时使用完全限定名称:agents = collection.Collection('hkpr_restore','agents')。

#1


You've only imported collection, not Collection.

您只导入了集合,而不是集合。

Either do from collection import Collection, or use the full qualified name when instantiating: agents = collection.Collection('hkpr_restore','agents').

可以从集合导入集合中执行,也可以在实例化时使用完全限定名称:agents = collection.Collection('hkpr_restore','agents')。