WIn10+Anaconda环境下安装PyTorch(避坑指南)

yipeiwu_com5年前Python基础

这些天安装 PyTorch,遇到了一些坑,特此总结一下,以免忘记。分享给大家。

首先,安装环境是:操作系统 Win10,已经预先暗转了 Anaconda。

1. 为 PyTorch 创建虚拟环境

关于 Anaconda 的安装步骤这里就忽略不讲了,Win10 下安装 Anaconda 非常简单。

安装 Anaconda 完毕后,我们在安装 PyTorch 之前最好先创建一个 pytorch 的虚拟环境。之所以创建虚拟环境是因为 Python 为不同的项目需求创建不同的虚拟环境非常常见。在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库,管理起来相当麻烦。所以通过创建虚拟环境,相当于为不同的项目创建一块独立的空间,在这个空间里,你安装任何库和框架都是独立的,不会影响到外部环境。

总之就是想象成为 PyTorch 单独创建一个空间,这个空间与其它空间互不影响。我之前安装了 TensorFlow 了,也是创建了一个虚拟环境,且 Python 版本是 3.5 的。所以,这里当然也要创建虚拟环境了。

创建 PyTorch 虚拟环境步骤:

1.打开 Anaconda 自带的 Anaconda Prompt:


2.打开 Anaconda Prompt 之后,在命令行输入:

conda create --name pytorch python=3.6

注意,这里的 pytorch 是虚拟环境的名称,可随意取。

3.然后继续下列命令,进入 pytorch 虚拟环境:

activate pytorch


好了,pytorch 的虚拟环境创建好了。接下来就是安装 PyTorch 了。

其实,安装 PyTorch 还是非常简单的。接下来记录一些坑。

2. PyTorch 官网安装

PyTorch 的官网提供了简单的安装方法,只需简单的命令即可。

首先,打开 PyTorch 官网安装页面(需自备梯子):https://pytorch.org/get-started/locally/


可以看到页面里的这张图,非常简单。我们的环境是:Windows、Conda、Python 3.6、None CUDA,对应的命令是:

conda install pytorch-cpu torchvision-cpu -c pytorch

复制这条命令在 Anaconda Prompt 里输入,则 PyTorch “顺利”安装完成。

但是问题来了,在 Jupyter 里 import torch 没有问题,可 import torchvision 确报错了:

ImportError: DLL load failed: 找不到指定的模块。

可能是 pillow 模块有问题。尝试卸载 pillow 模块,但是会同时卸载 PyTorch,故为一坑。

3. pip 安装

上一种方法舍弃,这里尝试使用 pip 安装。

同样在 Anaconda Prompt 里输入以下命令:

# Python 3.6
pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-win_amd64.whl
pip3 install torchvision

安装顺利完成。

这时候在 Jupyter 里 import torch 没有问题,可 import torchvision 确仍然报错了:

ImportError: DLL load failed: 找不到指定的模块。

解决方案:

在 Anaconda Prompt 里输入以下命令:

conda uninstall pillow
pip install pillow

使用 pip 重新安装 pillow 模块即可。

至此,填坑。PyTorch 成功安装。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

在Python中处理时间之clock()方法的使用

 clock()方法返回当前的处理器时间,以秒表示Unix上一个浮点数。精度取决于具有相同名称的C函数,但在任何情况下,这是使用于基准Python或定时的算法函数。 在Wind...

python3+selenium自动化测试框架详解

python3+selenium自动化测试框架详解

背景 为了更好的发展自身的测试技能,应对测试行业以及互联网行业的迭代变化。自学python以及自动化测试。 虽然在2017年已经开始接触了selenium,期间是断断续续执行自动化测...

Python中三元表达式的几种写法介绍

要介绍Python的三元表达式,可以先看看其他编程语言比如C,JAVA中应用: public class java { public static void main(String...

python 函数传参之传值还是传引用的分析

python 函数传参之传值还是传引用的分析

首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?    函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有...

在Django admin中编辑ManyToManyField的实现方法

如何定义多对多关系 Django 本身自带了一个很强大的ORM,支持自定义model并将其映射到数据库的表中 model中可以定义各种类型的数据,比较直观的比如整形, 字符型,也可以定义...