docker 中使用 pip 命令遇到RuntimeError: can't start new thread

使用 pip install后跟任何参数都遇到RuntimeError: can't start new thread

完整报错如下

$ docker top 91b91d359fe7d19cf644c845d27817052f129d73608357a25ca88d642737739e -eo pid,comm+ pip install --upgrade pip

Requirement already satisfied: pip in /usr/local/lib/python3.9/site-packages (23.0.1)

Collecting pip

  Downloading pip-23.2.1-py3-none-any.whl (2.1 MB)

ERROR: Exception:

Traceback (most recent call last):

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper

    status = run_func(*args)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper

    return func(self, options, args)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 419, in run

    requirement_set = resolver.resolve(

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve

    result = self._result = resolver.resolve(

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve

    state = resolution.resolve(requirements, max_rounds=max_rounds)

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve

    self._add_to_criteria(self.state.criteria, r, parent=None)

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria

    if not criterion.candidates:

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py", line 151, in __bool__

    return bool(self._sequence)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__

    return any(self)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>

    return (c for c in iterator if id(c) not in self._incompatible_ids)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 97, in _iter_built_with_inserted

    candidate = func()

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link

    self._link_candidate_cache[link] = LinkCandidate(

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 297, in __init__

    super().__init__(

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in __init__

    self.dist = self._prepare()

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 231, in _prepare

    dist = self._prepare_distribution()

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution

    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 491, in prepare_linked_requirement

    return self._prepare_linked_requirement(req, parallel_builds)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 536, in _prepare_linked_requirement

    local_file = unpack_url(

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 166, in unpack_url

    file = get_http_url(

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 107, in get_http_url

    from_path, content_type = download(link, temp_dir.path)

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/network/download.py", line 147, in __call__

    for chunk in chunks:

  File "/usr/local/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py", line 52, in _rich_progress_bar

    with progress:

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/progress.py", line 1169, in __enter__

    self.start()

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/progress.py", line 1160, in start

    self.live.start(refresh=True)

  File "/usr/local/lib/python3.9/site-packages/pip/_vendor/rich/live.py", line 132, in start

    self._refresh_thread.start()

  File "/usr/local/lib/python3.9/threading.py", line 899, in start

    _start_new_thread(self._bootstrap, ())

RuntimeError: can't start new thread

方式一:

请优先考虑升级 docker 版本,这是由于 docker 版本 bug 导致。

方式二:

docker 启动参数后加上 --security-opt seccomp=unconfined -it --rm --ulimit nofile=65536:65536

如 :

docker run --security-opt seccomp=unconfined -it --rm --ulimit nofile=65536:65536

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容