2.2.4 配置IPython Notebook远程调用
配置IPython Notebook远程调用是为了通过远程能够访问本机上的IPython Notebook,具体配置步骤如下。
(1)下载两个插件:Win32 OpenSSL v1.0.1c Light和Visual C++ 2008 Redistributable。
先安装Visual C++ 2008 Redistributable,再安装Win32 OpenSSL v1.0.1c Light。在安装过程中,遇到“select additional tasks”下面的选项时,最好选择第二个选项“The OpenSSL binaries(/bin) directory”。
在电脑的C盘会生成一个名称为OpenSSL-Win32的文件夹,最后还需要将C:\OpenSSL-Win32\bin添加到你的PATH环境变量中。
(2)为服务器创建配置文件。
在最初的目录C:输入命令行ipython profile create nbserver。
这样就会在C:\Users\Administrator.ipython下生成一个profile_nbserver文件夹,保存服务器的配置信息。进入该文件夹,用编辑器打开ipython_notebook_config.py文件,编辑详细的配置信息。
(3)生成SSL证书。
在之前进入的目录中输入(当然可以在任意目录中)如下代码。
openssl req -x509-nodes -days 365-newkey rsa:1024-keyout mycert.pem -out mycert.pem
接下来会提示让你输入国家、城市、地区、姓名、邮箱等信息,最后就在之前的目录生成了mycert.pem。
(4)生成IPython其配置文件中使用的加密密码。
In [1]: from IPython.lib import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:0e422dfccef2:84cfbcb b3ef95872fb8e23be3999c123f862d856
记住设置的登录密码和Out输出的钥匙,后期会用到。
(5)修改配置文件。
profile_nbserver文件夹下的ipython_notebook_config.py文件,用编译器打开它进行内容的修改,注意是格式为.py的文件,要控制好语句缩进。
主要修改的内容如图2-25所示。
图2-25 配置文件修改的部分
可以通过编译器的查找功能快速定位从而进行修改,快捷键为“Ctrl+F”。
(6)运行IPython Notebook。
在cmd中执行IPython Notebook --profile=nbserver命令就可以通过地址:https://电脑IP地址:9999/,访问你的IPython Notebook了。
注:IP地址的获取,是在cmd命令行输入ipconfig,即可看到如图2-26所示的界面。
登录页面如图2-27所示。
图2-26 查看IP地址
图2-27 登录页面
修改配置和登录密码(如果有需要)。
(1)在root权限下输入命令Python -c "import IPython; print IPython.lib. passwd()",以生成新的密码。
(2)输入两次新的密码后,系统会为新的密码生成SHA串。
Enter password: Verify password: sha1:a83146285fe2:5288dfeb3a6a88cf46028af16992fadce...//(安全原因略去)
(3)编辑配置文件。
vim /root/.iPython/profile_nbserver/ipython_notebook_config.py
(4)修改密码项。
c.NotebookApp.password = u'sha1:a83146285fe2:5288dfeb3a6a88cf- 46028af16992fadce...'
(5)重新启动服务。
iPython Notebook --profile=nbserver
密码修改完成。
以上就是IPython notebook在Windows操作系统上的部署过程,也是我曾经在学习Python入门时所积累下的笔记。当初在手动部署这个环境时,市面上还没有轻量级的Python工具可供使用,所以为了方便学习,部署流程会显得烦琐。但现在只需要到Anaconda官网(https://www.continuum.io/downloads/)上下载并安装该软件,就直接可以使用自带的IPython Notebook了。
需要注意的是,安装软件的目录,要保证全英文路径。避免在安装以及使用时出现一些问题。在IPython Notebook启动时,如果提示编码异常(UnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 36: ordinal not in range(128)),可以进行如下操作。
(1)利用NotePad++创建一个Python文件,将它命名为sitecustomize.py,注意格式设置为UTF-8且无BOM格式编码,代码如下。
import sys sys.setdefaultencoding(‘gbk') #如果不行,再设置为UTF-8
(2)将文件保存并移动到\Anaconda2\Lib\site-packages目录下,然后重新启动IPython Notebook。