Mac OS上的PIP安装版本问题

时间:2020-08-29 20:00:04

标签: python macos pip virtualenv requirements

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

当遇到“火炬”依赖项时,它声称无法找到版本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并没有同样的问题并成功完成吗?

也许更重要了,有一种方法可以将Mac版本的pip指向“ Ubuntu VM正在使用的同一包文件” ,因为这似乎可以正常工作(或我可以对requirements.txt文件进行类似的修改,以便它可以在Mac上运行,而不仅仅是在Ubuntu上运行?

非常感谢!

2 个答案:

答案 0 :(得分:2)

torch 1.3.1没有为Python 3.8提供轮子,因此Mac上的Python无法安装它。在Ubuntu上,您使用Python 3.6,因此Ubuntu上的pip可以安装此版本。

在Mac上使用Python 3.6或3.7。

答案 1 :(得分:2)

查看该版本的Torch的{​​{3}}时,您会看到:

  • 没有可以重新编译的源分发版本(通常是.tar.gz);
  • 所有可用的二进制发行版都针对:
    • manylinux1是可在许多linux版本上运行的标签,该标签可能已经很旧了-毫不奇怪,它可以在Ubuntu上使用Python 2.7、3.5、3.6或3.7;
    • 具有Python 3.5的Mac OS 10.6或具有Python 2.7、3.6或3.7的Mac OS 10.7-这些构建可能会在更高版本的Mac OS上运行,只要提供Python版本即可;

特别是,所有这些发行版都不能在Python 3.8上运行,这是控制台输出显示的Python版本。