导入urllib2或urllib

时间:2015-08-10 06:00:18

标签: python import urllib2 urllib

我收到了奇怪的输入请求信息“类型编号1:>”在python中导入urllib或urllib2模块时(使用解释器或从文件中导出 - 虽然解释器间歇性地遇到此问题但文件是一致的)

$ python testurl.lib 
type number 1:>1
type number 2:>2
999
Traceback (most recent call last):
File "testurl.lib", line 1, in <module>
import urllib2
File      "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 94, in <module>
import httplib
File  "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 80, in <module>
import mimetools
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py", line 6, in <module>
import tempfile
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 35, in <module>
from random import Random as _Random
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 45, in <module>
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ImportError: cannot import name log

输出/错误是相同的,无论输入'1'和'2'是否给定。

试图:

Python 2.7.10

Python 2.7.6

两个版本都提出了问题

2 个答案:

答案 0 :(得分:1)

您的问题是您的PYTHONPATH中有一个tags/tag-name文件,这是导入模块时搜索的目录链。它从您当前的工作目录和脚本所在的目录开始,因为您在其中一个目录中有一个math.py文件(在这种情况下它们可能是相同的目录),它是在{{{{}之前导入的。 1}}标准库中的模块。

TLDR:切勿将标准库模块的名称用于您自己的模块,因此不会遇到此问题。

答案 1 :(得分:1)

问题是您在同一个文件夹中有math.py

导入python时查找当前文件夹,当找到math.py时,它会尝试在数学模块之前导入它。