gpt4 book ai didi

每当缺少导入时,Python TypeError ("a bytes-like object is required, not ' str'")

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:30 25 4
gpt4 key购买 nike

这是最近开始出现的一个奇怪错误。每当我尝试导入一个不存在的模块时,我都会得到一个 TypeError 而不是 ImportError:

$ python
Python 3.6.0 (default, Jan 30 2017, 10:05:52)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import missing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 946, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 885, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1157, in find_spec
File "<frozen importlib._bootstrap_external>", line 1129, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1268, in find_spec
File "<frozen importlib._bootstrap_external>", line 60, in _path_join
File "<frozen importlib._bootstrap_external>", line 60, in <listcomp>
TypeError: a bytes-like object is required, not 'str'

这似乎是一个“你试图从 python3 调用 python2 库,愚蠢”类型的错误,但它显然与我编写的代码无关(正如你从上面的回溯中看到的——我只是开始一个 repl,import missing,然后发生错误)。这种行为在我安装 python 3.6 后不久就开始发生,但它也发生在我的 python3.5 REPL(我保留它)中,所以它可能与此无关。

对可能发生的事情有任何猜测吗?我在 importlib 中四处寻找了一下,但我在这里几乎不知所措。

编辑:谜底已解,见评论。

最佳答案

谜团解决了:问题出在 ~/.config/startup.py 函数中,该函数将 git 存储库根目录放到系统路径中(这样无论何时您的 cwd 在 git 存储库中,您都可以启动 REPL 和导入在该存储库中定义的模块)。这是将 git rev-parse --show-toplevel 的结果插入到 sys 路径中,这是 python 3 中的字节对象,这会导致 importlib 报错。

关于每当缺少导入时,Python TypeError ("a bytes-like object is required, not ' str'"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com