在疫情飘摇的2020年初,TensorFlow发布了2.1.0版本,本Python小白在安装过程中遇坑无数,幸得多年练就的百度功力终于解决,特记录下来以免后人跳坑。
准备工作
Python 3.6或3.7 。TensorFlow2.1.0版本将是最后一个支持Python 2的版本,但Python3.8还不支持,因此请自行从官网下载安装Python 3.6或3.7(我安装的是3.6)。
一、搭建虚拟环境(以下顺序不要乱)
virtualenv可以搭建虚拟且独立的Python环境,解决不同的工程依赖不同版本的库的问题,亦可使不同环境仅保留项目有用的库以免引发未来的依赖灾难。
1. 安装virtualenv
pip3 install virtualenv
安装virtualenv
任意目录> pip3 install virtualenv
2. 安装virtualenvwrapper
virtualenv的一个最大的缺点就是,每次开启虚拟环境要去虚拟环境所在目录下的bin目录下运行一下activate,这不仅麻烦,还需要我们记住每个虚拟环境所在的目录,which你应该记不住。这时,我们就可以使用virtualenvwrapper管理你的虚拟环境的目录,以后每次使用只需要 work on 虚拟环境名
即可。
pip3 install virtualenvwrapper-win
安装Windows版virtualenvwrapper
任意目录> pip3 install virtualenvwrapper-win
3. 创建WORKON_HOME环境变量
在我的电脑-属性-高级系统设置-环境变量-系统变量中,添加WORK_ON变量,存储你想要创建的虚拟环境的地址。
4. 创建虚拟环境
mkvirtualenv 你的虚拟环境名称 [--python=安装路径\python.exe]
会创建一个指定Python版本的虚拟环境
任意目录> mkvirtualenv v36env --python=D:\Python\Python36\python.exe
这会在我的WORKON_HOME目录创建一个v36env文件夹,使用我安装在D:\Python\Python36\目录下的3.6版本的Python
5. 使用虚拟环境
workon
命令会列出你当前的虚拟环境名称(其实列出的是WORKON_HOME目录下所有文件夹的名称)
workon 虚拟环境名称
激活虚拟环境并在虚拟环境上工作
任意目录> workon Pass a name to activate one of the following virtualenvs: ============================================================= v36env 任意目录> workon v36env (v36env) 任意目录>
6. 离开、删除虚拟环境
deactivate
当虚拟环境使用完毕,用这个命令退出
(v36env) 任意目录> deactivate 任意目录>
rmvirtualenv 虚拟环境名称
删除虚拟环境(其实就是删除文件夹,你手动删除也可以)
任意目录> rmvirtualenv v36env Deleted D:\Python\Env\v36env 任意目录>
二、安装TensorFlow(以下顺序可以乱)
1. 在虚拟环境中安装TensorFlow
在命令行中进入你的虚拟环境所在目录(我的是D:\Python\Env),然后workon 虚拟环境
激活并开始使用虚拟环境。
pip install tensorflow
安装TensorFlow,这个过程比较漫长。
如果你还需要其他数据分析相关的库,比如pandas,matplotlib,也需要在虚拟环境中安装
D:\Python\Env>workon v36env (v36env) D:\Python\Env> pip install tensorflow
2. 确保你安装了VC++2015
TensorFlow是基于VC++2015开发的,所以需要下载安装 Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 来获取MSVCP140.DLL的支持。安装方法很简单,点击上面链接在官网下载安装即可。
3. 安装CUDA和CUDNN
TensorFlow 2.1.0 现在默认包括针对 Linux 和 Windows 的 GPU 支持,因此需要安装NVIDIA CUDA Toolkit和对应版本的NVIDIA CUDA Deep Neural Network library (cuDNN) 。我安装的是10.1版本,现在已经有10.2版本了。下载cuDNN的时候需要免费注册NVIDIA账号,当然如果你是像我一样吃鸡的小伙伴对显卡有稍高需求,那你八成已经有这个帐号了。
顺便吐槽一下NVIDIA账号什么都没有,还非要密码包含大小写加符号,我三次输入错误后账号被锁,想通过contact us解锁却发现给客服发邮件需要先登录 >_<
4. 检验TensorFlow是否安装成功
在虚拟环境中,运行import tensorflow
,如果没有报错,恭喜你,你成功了一大半了!如果报错了,那也恭喜你,你发现了我还没发现的坑,请你稳住心态,移步百度。
(v36env) D:\Python\Env\v36env> python Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. > import tensorflow as tf 2020-04-08 21:05:37.219916: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll >
三、在Jupyter中编写TensorFlow代码
别问我为啥要在Jupyter Notebook中编写TensorFlow,人家还是小白~
1. 安装ipykernel
pip install ipykernel
在刚刚你的虚拟环境中,安装ipykernel
(v36env) D:\Python\Env\v36env> pip install ipykernel
2. 在Jupyter中添加虚拟环境
python -m ipykernel --user --name 虚拟环境名 [--display-name Jupyter中要显示的名字]
(v36env) D:\Python\Env> python -m ipykernel --user --name v36env (v36env) D:\Python\Env> jupyter notebook
打开后Jupyter Notebook后,就可以在Kernel-Change kernel中看到刚刚添加的虚拟环境了,我的是v36env。当你选择该虚拟环境后,右上角应该显示为可信的(而不是挂掉了)。
3. 在Jupyter中编写TensorFlow
来了老铁!
现在你可以在cell里输入import tensorflow并运行一下,如果没有报错,那么恭喜你终于成功的搭建好了编程环境,可以开始编写TensorFlow代码了!