如何解决模块六没有属性 ensure_text
出乎意料,我的 python 安装似乎坏了。尝试运行 python 脚本时,我得到以下信息...
[michael@arch ~/Code/CTF/aero/house]$ ./solve.py
Traceback (most recent call last):
File "/home/michael/Code/CTF/aero/house/./solve.py",line 5,in <module>
from pwn import *
File "/home/michael/.local/lib/python3.9/site-packages/pwn/__init__.py",line 20,in <module>
pwnlib.update.check_automatically()
File "/home/michael/.local/lib/python3.9/site-packages/pwnlib/update.py",line 199,in check_automatically
log.info("\n".join(message))
File "/home/michael/.local/lib/python3.9/site-packages/pwnlib/log.py",line 395,in info
self._log(logging.INFO,message,args,kwargs,'info')
File "/home/michael/.local/lib/python3.9/site-packages/pwnlib/log.py",line 292,in _log
msg = six.ensure_text(msg)
AttributeError: module 'six' has no attribute 'ensure_text'
尝试使用 pip 重新安装模块也会中断...
[michael@arch ~/Code/CTF/aero/house]$ python3 -m pip install pwntools
Traceback (most recent call last):
File "/usr/lib/python3.9/runpy.py",line 197,in _run_module_as_main
return _run_code(code,main_globals,None,File "/usr/lib/python3.9/runpy.py",line 87,in _run_code
exec(code,run_globals)
File "/usr/lib/python3.9/site-packages/pip/__main__.py",line 26,in <module>
sys.exit(_main())
File "/usr/lib/python3.9/site-packages/pip/_internal/cli/main.py",line 73,in main
command = create_command(cmd_name,isolated=("--isolated" in cmd_args))
File "/usr/lib/python3.9/site-packages/pip/_internal/commands/__init__.py",line 105,in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.9/importlib/__init__.py",line 127,in import_module
return _bootstrap._gcd_import(name[level:],package,level)
File "<frozen importlib._bootstrap>",line 1030,in _gcd_import
File "<frozen importlib._bootstrap>",line 1007,in _find_and_load
File "<frozen importlib._bootstrap>",line 986,in _find_and_load_unlocked
File "<frozen importlib._bootstrap>",line 680,in _load_unlocked
File "<frozen importlib._bootstrap_external>",line 790,in exec_module
File "<frozen importlib._bootstrap>",line 228,in _call_with_frames_removed
File "/usr/lib/python3.9/site-packages/pip/_internal/commands/install.py",line 14,in <module>
from pip._internal.cache import WheelCache
File "/usr/lib/python3.9/site-packages/pip/_internal/cache.py",line 15,in <module>
from pip._internal.utils.temp_dir import TempDirectory,tempdir_kinds
File "/usr/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py",line 11,in <module>
from pip._vendor.six import ensure_text
ImportError: cannot import name 'ensure_text' from 'six' (/home/michael/.local/lib/python3.9/site-packages/six.py)
我已经读到这是由以 root 身份运行 pip 引起的,但我没有这样做。我最近也没有进行任何升级或安装任何新软件包。到目前为止,我已尝试设置 PYTHONPATH
、重新安装 python 和重新安装 pip,但这些选项均无效。有没有人有任何想法?提前致谢!
编辑:我也尝试更新 python 和 pip,但没有用。
请求的信息:
>>> import six; print(six.__file__)
/home/michael/.local/lib/python3.9/site-packages/six.py
>>> print(six.__version__)
1.10.0
解决方法
通过在 wget https://raw.githubusercontent.com/benjaminp/six/master/six.py
中执行 ~/.local/lib/python3.9/site-packages
,我能够更新六个。这解决了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。