2014-11-05 2 views
0

Итак, я установил модуль facebook, понял, что он был неправильным, использовал pip для удаления, а затем установил facebook-sdk. Вот мой код:Любой способ увидеть, где python импортирует модуль?

import facebook 

token = '[token]' 

graph = facebook.GraphAPI(token) 
profile = graph.get_object("me") 
friends = graph.get_connections("me", "friends") 

friend_list = [friend['name'] for friend in friends['data']] 

print friend_list 

и получить

Traceback (most recent call last): 
    File "C:\Users\mgraves\Desktop\facebook.py", line 1, in <module> 
    import facebook 
    File "C:\Users\mgraves\Desktop\facebook.py", line 5, in <module> 
    graph = facebook.GraphAPI(token) 
AttributeError: 'module' object has no attribute 'GraphAPI' 

При взгляде это вверх, КАЖДЫЙ результат говорит деинсталлировать фейсбук и facebook-SDK и переустановить facebook-SDK. И у меня много раз. Я искал/python27/для facebook после этого, чтобы убедиться, что файлы ушли.

Есть ли какой-либо способ на машине Windows, чтобы отслеживать, где я импортирую «facebook»?

ответ

2

объекты модуля имеют атрибут __file__ и представление объекта также включает в себя файл:

print facebook 
print facebook.__file__ 

В вашем случае, вы импортируете свой собственный сценарий; вы назвали его facebook, а также и маскирует установленный модуль:

File "C:\Users\mgraves\Desktop\facebook.py", line 1, in <module> 
    import facebook 
    File "C:\Users\mgraves\Desktop\facebook.py", line 5, in <module> 
    graph = facebook.GraphAPI(token) 

Обратите внимание на имя файла в первой строке, то тот факт, что же файл используется для этого импорта. Python хранит главный скрипт как __main__, поэтому импорт самого скрипта приводит к созданию другого модуля для фактического имени файла.

+0

Обычно я лгал и говорил, что нашел файл, который испортил его, но святое дерьмо. Как я допустил ошибку, назвав мой скрипт python «facebook.py»? Благодарим вас за указание на это, и спасибо за помощь. Я уверен, что это будет полезно в будущем. – user230250

Смежные вопросы