在anaconda指定虚拟环境下运行jupyter notebook

最近因为要远程调试TensorFlow代码,因而在远程服务器上搭建了TensorFlow框架。但又因为远程服务器没有浏览器、没有一切可视化的界面,所以代码调试的任务就必须放在本地,也就是我得远程进行代码调试,即在本地使用服务器端的配置运行代码。

为此,我在服务器端安装了anaconda,准备使用jupyter notebook这个非常直观的交互性软件进行TensorFlow的代码调试。


好了,原因我说完了,下面具体说一下我是咋做的:

  • 安装anaconda、并新建虚拟环境。虚拟环境名字就叫tensorflow
  • 在tensorflow虚拟环境下安装TensorFlow==1.8.0版本所需的一切支持库
  • 在tensorflow虚拟环境下运行jupyter notebook,并在本地建立ssh连接,在本地浏览器窗口打开对应的服务器的IP地址:port
  • 成功完成连接后,import tensorflow as tf

这时候出现了问题!import tensorflow报错。但我在命令行下运行python,并import tensorflow并无报错,这时为何?

一番鼓捣之后知道了原因。原因在于,我的tensorflow虚拟环境下没有安装jupyter、ipython,导致我运行jupyter notebook命令的时候,实际上还是打开的base虚拟环境的jupyter kernel。为了验证你打开的jupyter kernel到底是哪个虚拟环境的kernel,你可以在jupyter内运行:

import sys
print(sys.executable)

你需要观察,该命令运行后输出的路径是不是你想运行的那个虚拟环境目录下的python文件。若不是,则你使用jupyter打开的kernel其实就不是你想要的那个虚拟环境。所以总而言之,这是个“如何在anaconda指定虚拟环境下运行jupyter notebook”的问题。


说清楚问题后,就该上解决之道了。

$ conda activate tensorflow   # 'tensorflow'换成你想进入的虚拟环境的名字
$ which ipython
$ which jupyter 

运行这两句,看看你这个虚拟环境是否安装过这二者——若未安装,则显示的路径是全局的路径,比如"/usr/local/bin/jupyter",而非你家目录下的jupyter路径。

解决:

$ conda install jupyter
$ conda install ipython
# 注意:要在你想安装它们的虚拟环境下运行这两个命令

安装完毕后,在tensorflow虚拟环境下再次运行jupyter notebook,再次查看sys.executable,这次得到的路径就应该是该虚拟环境下的python路径啦


解决问题的心得:

有时候,把到底是什么问题描述清楚、整理明白,你就已经解决了这个问题的八成了。

你可能感兴趣的:(Python,tricks)