2015-04-13 1 views
0

, поэтому я пытаюсь импортировать свой собственный модуль python в новый скрипт, который я написал. Я получаю ошибку:Импорт собственной ошибки атрибута Python модуля

AttributeError: 'модуль' объект имеет не атрибут 'getSessionIds'

В моем главном файле, я ввожу как таковые:

import UnityAppSessionSummary 

class ScheduledGenSummaries(DatabaseModule): 
    def __init__(self): 
     super(ScheduledGenSummaries, self).__init__() 
    def run(self): 
     ... (some db connection stuff) 
     sessionIds = UnityAppSessionSummary.getSessionIds(db, user) 

if __name__ == '__main__': 
     testrun = ScheduledGenSummaries() 

     testrun.run() 

В моем UnityAppSessionSummary.py файла, У меня есть что-то такое:

class UnityAppSessionSummary(): 
    # This method is used to obtain a list of all session ID's for a certain user 
    def getSessionIds(self, db, user): 
     ....code.... 

Я не уверен, почему я получаю эту ошибку, и я просмотрел другие предыдущие сообщения. Я попытался «импортировать UnityAppSessionSummary как приложение», а затем приложение (некоторые функции в UnityAppSessionSummary), но он все еще дает мне ошибку. Заранее спасибо.

ответ

2

У вас есть файл, который UnityAppSessionSummary.py импортируемых при запуске

import UnityAppSessionSummary 

Однако внутри этого .py файла у вас есть класс с именем UnityAppSessionSummary, а также и внутри , что вашего getSessionIds() метод. Попробуйте это:

from UnityAppSessionSummary import UnityAppSessionSummary as app 

# ... 
sessionIds = app.getSessionIds(db, user) 
+0

следующий раз я получаю сообщение об ошибке: TypeError: несвязанный метод getSessionIds() должен вызываться с UnityAppSessionSummary, например, как первый аргумент (получил экземпляр базы данных, а) Означают ли это, что мне нужно добавить супер (UnityAppSessionSummary , self) .getSessionIds() в мой файл 'UnityAppSessionSummary.py'? – ajl123

+0

@ ajl123 No. Вместо этого вам нужно создать экземпляр вашего класса, а затем вызвать 'getSessionIds()' на этом экземпляре. Итак, 'my_app = app (args); my_app.getSessionIds (db, user) ' – MattDMo