使用 pip3 为 OS X 安装了 pytorch1.0.1 但无法导入,我该怎么办?

installed pytorch1.0.1 for OS X with pip3 but cannot import, what can I do?

我已经用 pip3 安装了适用于 MacOS 10.14 的 pytorch,但我无法在 python 脚本中导入它。我该怎么办?

系统:MacOS 10.14

Python3: v3.7

➜  ~ pip3 list
Package     Version    
----------- -----------
numpy       1.16.2     
Pillow      5.4.1      
pip         18.1       
pycairo     1.17.1     
pygobject   3.28.3     
setuptools  40.5.0     
six         1.12.0     
torch       1.0.1.post2
torchvision 0.2.2.post3
virtualenv  16.1.0     
wheel       0.32.2     
➜  ~ python3 
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'
>>> 

扩展我的评论:

不能严格保证系统中某处的 pip3 包装器脚本与 python3 二进制文件的 pip 包 manager/module 相关。该包装器可能是由 Python 的不同安装创建的——可能是您系统自己的,也可能是其他的。 (您可以使用 which pip3 查看脚本所在的位置,并使用 less $(which pip3) 查看它使用的解释器,并查看顶部的 shebang 行。)

您安装的每个 Python 版本都有自己的站点包目录,其中包含全局(就该版本而言)安装的包。幸运的是,pip 可以 运行 与使用 -m 开关的包装脚本完全相同,因此 sure Torch 和 Torchvision 安装到您的 python3(此时似乎是 Python 3.7.0),

python3 -m pip install torch torchvision

应该可以解决问题。

但是,应该避免全局(好吧,解释器全局,如上所述)安装包,因为当您处理多个项目时很容易陷入棘手的冲突。你应该改为使用 virtualenvs 将你的库安装彼此分开——venv 模块现在包含在 Python 中,official documentation 有一个指南。 (其他选项是 pipenv 和 poetry,但值得了解较低级别的工具。)