【问题标题】:Module Six has no attribute ensure_text模块六没有属性 ensure_text
【发布时间】:2021-07-07 20:07:32
【问题描述】:

出乎意料的是,我的 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

【问题讨论】:

  • import six; print(six.__file__) 告诉我们你得到了什么。
  • (还有print(six.__version__) 并向我们展示 that 打印的内容,即使它引发了异常。)
  • 没问题!我将输出添加到问题中
  • 你需要six版本>=1.12.0
  • 你不知何故得到了一个过时的six 版本。可能已被您安装的其他东西固定版本。您可能必须手动将文件替换为较新的版本 - 这通常是一个非常糟糕的主意,但您现在无法通过正常方式。

标签: python python-3.x pip arch pwntools


【解决方案1】:

我可以通过在~/.local/lib/python3.9/site-packages 中执行wget https://raw.githubusercontent.com/benjaminp/six/master/six.py 来更新六个。这样就解决了问题。

【讨论】:

    【解决方案2】:
    python3 -m pip install --upgrade six
    

    最好在虚拟环境中执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2021-12-24
      • 2015-05-08
      • 2020-10-17
      • 2020-10-03
      • 2018-08-11
      • 2020-01-01
      相关资源
      最近更新 更多