有什么方法可以看到python从哪里导入模块?

时间:2014-11-05 18:31:21

标签: python windows python-2.7

所以我安装了facebook模块,意识到它是错误的,用pip卸载然后安装了facebook-sdk。这是我的代码:

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和facebook-sdk并重新安装facebook-sdk。我有很多次。之后我搜索了/ python27 / for facebook以确保文件不见了。

Windows机器上是否有任何方法可以追溯我从哪里导入“facebook”?

1 个答案:

答案 0 :(得分: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__,因此导入脚本本身会导致为实际文件名创建另一个模块。