为什么这个Python代码运行两次?

时间:2013-07-08 15:07:26

标签: python python-2.7 python-requests

我有一个只有这两行的Python脚本:

import requests
print len(dir(requests))

打印:

12
48

当我打印实际列表dir(requests)时,我明白了:

['__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__']
['ConnectionError', 'HTTPError', 'NullHandler', 'PreparedRequest', 'Request', 'RequestException', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__', 'adapters', 'api', 'auth', 'certs', 'codes', 'compat', 'cookies', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'session', 'sessions', 'status_codes', 'structures', 'utils']

我猜有多个requests模块或类似的东西。请帮忙。

2 个答案:

答案 0 :(得分:14)

您为脚本指定了标准模块的名称或requests包导入的其他内容。您创建了一个循环导入。

yourscript -> import requests -> [0 or more other modules] -> import yourscript -> import requests again

因为requests第一次在支持的对象列表中看到这些差异时没有完成导入。

不要那样做。将您的脚本重命名为其他内容,它们都可以正常工作。

答案 1 :(得分:1)

第一个是你自己的模块 第二是用于处理HTTP请求的模块。 重命名你自己的模块