我在使用Python 2.7 + PyCharm 2016.2 + Windows 10(64)的PC上遇到了这个奇怪的问题。
运行脚本时:
import urllib
from BeautifulSoup import *
url = raw_input('Enter -')
if (len(url) < 1):
url = "http://python-data.dr-chuck.net/comments_292106.html"
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
lst = list()
tags = soup('span')
for tag in tags:
# print 'TAG:', tag
# print 'URL:', tag.get('href', None)
# print 'Contents:', tag.contents
# print 'Attrs:', tag.attrs
num = int(tag.contents[0])
lst.append(num)
print sum(lst)
我收到这样的信息:
C:Python27python.exe E:/python/coursera/following_links.py
23
0.8475
Traceback (most recent call
File "E:/python/coursera/following_links.py", line 1, in <module>
import urllib
File "C:Python27liburllib.py", line 30, in <module>
import base64
File "C:Python27libbase64.py", line 98, in <module>
_urlsafe_encode_translation = string.maketrans(b'+/', b'-_')
AttributeError: 'module' object has no attribute 'maketrans'
Process finished with exit code 1
同样的情况也发生在WingIDE中。
有趣的是,当使用python的Idle时,这个脚本可以工作。
它也适用于我的第二台PC与Windows 8 (64) (Python 2.7和PyCharm 2016.2)
我认为这是在幕后发生的。为了执行你的命令,Python必须做一些工作,它没有找到它需要的文件。这也许可以解释为什么它可以在Idle和你的PC上工作,但在其他地方(如Wing IDE)却不行。