我创建了简单文件,使用请求python库获取url,查看代码。第一次文件one.py工作正常并获取网址,但之后我在我的目录中创建 pycache ,我收到以下错误,以某种方式引用一个完全不同的文件来自同一个目录。此外,在 pycache 中,我可以看到一个文件email.cpython-36.pyc 使用以下代码:
3
?YÊ„@s&ddlZddlmZddÑZeÉdS)ÈN)⁄
BeautifulSoupcCs"tjdÉ}t|jdÉ}t|ÉdS)Nzhttp://clickaces.com/contact/zhtml.parser)⁄requests⁄getr⁄content⁄print)⁄html⁄bsobj©r ˙&/Users/mclaren/Desktop/june12/email.py⁄fetching_urls
r)r⁄bs4rrr r r r
⁄<module>s
文件one.py:
import requests
from bs4 import BeautifulSoup
def fetching_url():
html = requests.get("http://shakespeare.mit.edu/lll/full.html")
bsobj = BeautifulSoup(html.content, "html.parser")
print(bsobj.h3)
fetching_url()
错误:
File "one.py", line 1, in <module>
import requests
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/__init__.py", line 52, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/__init__.py", line 27, in <module>
from . import urllib3
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/__init__.py", line 8, in <module>
from .connectionpool import (
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 11, in <module>
from .exceptions import (
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/exceptions.py", line 2, in <module>
from .packages.six.moves.http_client import (
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/packages/six.py", line 82, in _import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 71, in <module>
import email.parser
File "/Users/mclaren/Desktop/june12/email.py", line 11, in <module>
fetching_url()
File "/Users/mclaren/Desktop/june12/email.py", line 5, in fetching_url
html = requests.get("http://clickaces.com/contact/")
AttributeError: module 'requests' has no attribute 'get'
答案 0 :(得分:5)
email
是requests
间接依赖的标准库包。通过将一个名为email.py
的文件与脚本放在同一目录中,可以防止requests
使用真正的email
包。重命名,移动或删除email.py
。