Mac OS 上的 PIP 安装版本问题

PIP install version problems on Mac OS

我正在尝试从 requirements.txt 文件为 python 项目安装多个依赖项。

当它遇到“torch”依赖项时,它声称无法找到 1.3.1 版本——但只在我的 Mac 而不是 Ubuntu,这令人费解。 (不幸的是,使用像 1.4 这样的不同版本不是这个项目的选择)

我的 Mac:

➜  code mkdir test_proj
➜  code cd test_proj
➜  test_proj mkvirtualenv $(basename $(pwd))
created virtual environment CPython3.8.5.final.0-64 in 304ms
  creator CPython3Posix(dest=/Users/aeb/.virtualenvs/test_proj, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/aeb/Library/Application Support/virtualenv)
    added seed packages: pip==20.2.2, setuptools==49.6.0, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /Users/aeb/.virtualenvs/test_proj/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/aeb/.virtualenvs/test_proj/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/aeb/.virtualenvs/test_proj/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/aeb/.virtualenvs/test_proj/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/aeb/.virtualenvs/test_proj/bin/get_env_details
(test_proj) ➜  test_proj which python
/Users/aeb/.virtualenvs/test_proj/bin/python
(test_proj) ➜  test_proj which pip
/Users/aeb/.virtualenvs/test_proj/bin/pip
(test_proj) ➜  test_proj pip install torch==1.3.1
ERROR: Could not find a version that satisfies the requirement torch==1.3.1 (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2, 1.4.0, 1.5.0, 1.5.1, 1.6.0)
ERROR: No matching distribution found for torch==1.3.1
(test_proj) ➜  test_proj

有趣的是,在 Ubuntu VM 中,使用相同的 pip install 命令没有问题:

user@devbox-vm2:~$ pip3 install torch==1.3.1
Collecting torch==1.3.1
  Using cached https://files.pythonhosted.org/packages/88/95/90e8c4c31cfc67248bf944ba42029295b77159982f532c5689bcfe4e9108/torch-1.3.1-cp36-cp36m-manylinux1_x86_64.whl

有谁知道为什么 mac 版本的 pip 找不到这个特定版本的 PyTorch,但是 Ubuntu 没有同样的问题并成功完成?

也许更重要的是,有没有办法将 pip 的 Mac 版本“指向”与 Ubuntu VM[=31= 相同的包文件] 正在使用,因为这似乎有效(或者我可以对 requirements.txt 文件进行类似的 修改,以便它适用于 Mac,而不仅仅是在 Ubuntu)?

非常感谢!

torch 1.3.1 不为 Python 3.8 提供轮子,因此 Mac 上的 Python 无法安装它。在 Ubuntu 上你使用 Python 3.6 所以 pip 在 Ubuntu 上可以安装这个版本。

在 Mac 上使用 Python 3.6 或 3.7。

当您查看该版本的 Torch 的 list of files available 时,您可以看到:

  • 没有您可以重新编译的源分发版本(通常是 .tar.gz);
  • 所有可用的二进制发行版都针对:
    • manylinux1 是一个适用于许多 linux 版本的标签,它可能已经很老了 - 它适用于 Ubuntu 和 Python 也就不足为奇了] 2.7、3.5、3.6 或 3.7;
    • Mac OS 10.6 与 Python 3.5,或 Mac OS 10.7 与 Python 2.7、3.6 或 3.7 - 这些如果 Python 的版本匹配;
    • ,则构建可能适用于 Mac OS 的更高版本

特别是,none 这些发行版可以 运行 在 Python 3.8 上,这是您的控制台输出显示的 Python 版本。