【发布时间】:2021-11-02 19:27:19
【问题描述】:
我是 API 新手,并且正在遵循每个网站的确切说明,解释应该如何使用 requests 模块在 Python 中获得 API 的帮助。但是,无论我定义什么 API 链接(当然,我为了测试它们是否有效而使用了许多免费的 API 示例),我都会收到此错误:ImportError: cannot import name 'b64encode' from 'base64'
我不知道问题是什么,或者我没有做对。
这是我的 sn-p,作为示例:
import requests
words = 30
paragraphs = 1
formats = 'text'
response = requests.get(f"https://v2.jokeapi.dev/")
print(response.text)
我得到的完整错误是这样的:
Traceback (most recent call last):
File "/home/liana/Desktop/testing.py", line 1, in <module>
import requests
File "/usr/lib/python3/dist-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 11, in <module>
from . import exceptions
File "/usr/lib/python3/dist-packages/urllib3/exceptions.py", line 3, in <module>
from six.moves.http_client import IncompleteRead as httplib_IncompleteRead
File "/usr/lib/python3/dist-packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/usr/lib/python3/dist-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/usr/lib/python3/dist-packages/six.py", line 82, in _import_module
__import__(name)
File "/usr/lib/python3.9/http/client.py", line 71, in <module>
import email.parser
File "/usr/lib/python3.9/email/parser.py", line 12, in <module>
from email.feedparser import FeedParser, BytesFeedParser
File "/usr/lib/python3.9/email/feedparser.py", line 27, in <module>
from email._policybase import compat32
File "/usr/lib/python3.9/email/_policybase.py", line 7, in <module>
from email import header
File "/usr/lib/python3.9/email/header.py", line 17, in <module>
import email.base64mime
File "/usr/lib/python3.9/email/base64mime.py", line 37, in <module>
from base64 import b64encode
ImportError: cannot import name 'b64encode' from 'base64' (/home/liana/Desktop/base64.py)
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 21, in <module>
from urllib.request import urlopen
File "/usr/lib/python3.9/urllib/request.py", line 88, in <module>
import http.client
File "/usr/lib/python3.9/http/client.py", line 71, in <module>
import email.parser
File "/usr/lib/python3.9/email/parser.py", line 12, in <module>
from email.feedparser import FeedParser, BytesFeedParser
File "/usr/lib/python3.9/email/feedparser.py", line 27, in <module>
from email._policybase import compat32
File "/usr/lib/python3.9/email/_policybase.py", line 7, in <module>
from email import header
File "/usr/lib/python3.9/email/header.py", line 17, in <module>
import email.base64mime
File "/usr/lib/python3.9/email/base64mime.py", line 37, in <module>
from base64 import b64encode
ImportError: cannot import name 'b64encode' from 'base64' (/home/liana/Desktop/base64.py)
Original exception was:
Traceback (most recent call last):
File "/home/liana/Desktop/testing.py", line 1, in <module>
import requests
File "/usr/lib/python3/dist-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 11, in <module>
from . import exceptions
File "/usr/lib/python3/dist-packages/urllib3/exceptions.py", line 3, in <module>
from six.moves.http_client import IncompleteRead as httplib_IncompleteRead
File "/usr/lib/python3/dist-packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/usr/lib/python3/dist-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/usr/lib/python3/dist-packages/six.py", line 82, in _import_module
__import__(name)
File "/usr/lib/python3.9/http/client.py", line 71, in <module>
import email.parser
File "/usr/lib/python3.9/email/parser.py", line 12, in <module>
from email.feedparser import FeedParser, BytesFeedParser
File "/usr/lib/python3.9/email/feedparser.py", line 27, in <module>
from email._policybase import compat32
File "/usr/lib/python3.9/email/_policybase.py", line 7, in <module>
from email import header
File "/usr/lib/python3.9/email/header.py", line 17, in <module>
import email.base64mime
File "/usr/lib/python3.9/email/base64mime.py", line 37, in <module>
from base64 import b64encode
ImportError: cannot import name 'b64encode' from 'base64' (/home/liana/Desktop/base64.py)
感谢任何帮助。
【问题讨论】:
-
看起来你缺少库依赖
-
@MadPhysicist 我怎样才能找出遗漏的内容?
-
什么是
/home/liana/Desktop/base64.py?它看起来像你的一个。 -
等等。
testing与base64是什么?尝试将base64重命名为其他名称。由于名称冲突,它似乎选择了错误的路径条目。 -
所以您的文件夹中没有多余的文件?错误消息很清楚地写着
/home/liana/Desktop/base64.py...
标签: python python-3.x api python-requests importerror