簡體   English   中英

無法使用 Python 3.9 venv`pip install numpy`

[英]Can't `pip install numpy` with a Python 3.9 venv

我安裝了 Python 3.9,創建了一個venv並嘗試安裝 numpy。 Cython 有一個錯誤,已在主干中修復。

所以我安裝在 venv Cython 3.0a0 並重試:

(venv) marco@buzz:~/sources/cython$ pip install numpy --no-cache-dir

[...]

收集 Cython>=0.29.13

[...]

錯誤:命令出錯,退出狀態為 1:/home/marco/sources/tests/more_itertools/venv/bin/python3.9 /home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages /pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-3ctn3kl8/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel 'Cython>=0.29.13' 檢查日志以獲取完整的命令輸出。

所以我試圖在函數def install_requirements注釋掉--ignore-installedvenv/lib/python3.9/site-packages/pip/_internal/build_env.py中。 我收到此錯誤:

ERROR: Exception:
Traceback (most recent call last):
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 153, in _main
    status = self.run(options, args)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 382, in run
    resolver.resolve(requirement_set)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/legacy_resolve.py", line 201, in resolve
    self._resolve_one(requirement_set, req)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/legacy_resolve.py", line 365, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/legacy_resolve.py", line 312, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 223, in prepare_linked_requirement
    abstract_dist = _get_prepared_distribution(
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 49, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/distributions/source/legacy.py", line 37, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_internal/distributions/source/legacy.py", line 90, in _setup_isolation
    reqs = backend.get_requires_for_build_wheel()
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py", line 151, in get_requires_for_build_wheel
    return self._call_hook('get_requires_for_build_wheel', {
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py", line 255, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "/home/marco/sources/tests/more_itertools/venv/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 63, in _build_backend
    obj = import_module(mod_path)
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1016, in _gcd_import
  File "<frozen importlib._bootstrap>", line 993, in _find_and_load
  File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1016, in _gcd_import
  File "<frozen importlib._bootstrap>", line 993, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools'

所以我手動安裝了依賴項並嘗試使用--no-deps

(venv) marco@buzz:~/sources/tests/more_itertools/venv$ pip install numpy --no-deps
Collecting numpy
  Using cached https://files.pythonhosted.org/packages/31/0a/5df350c29a06835d534a6c4f5681075304da38d85f1c69e5226a635a67ce/numpy-1.18.0.zip
  Installing build dependencies ... error
[...]

和以前一樣的錯誤。 --no-deps被忽略,並且--ignore-installed強制從 Pypi 下載 Cython,這不適用於 Python 3.9。

顯然,沒有--no-ignore-installed--ignore-installed=0 而事實是

  1. pip忽略--no-deps
  2. 如果您在venv注釋掉--ignore-installedpip無法找到已安裝的模塊

我在舊的easy_install取得了成功,所以我認為它現在很好。 我會報告這個錯誤(我猜是給venv開發人員)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM