python3 源码编译并配置jupyterhub
注意事项:需要注意的是, sqlite安装完成之后需要进行重新编译python, 需要注意的是,sqlite安装完成之后需要进行重新编译python
1.下载并源码编译python3
- #wget https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tar.xz
- # xz -d Python-3.4.5.tar.xz
- # tar xf Python-3.4.5.tar -C /usr/local/src/
- # cd /usr/local/src/Python-3.4.5/
- # ./configure –prefix=/usr/local/python34
- # make -j8 && make install
注意事项:
#由于pip和ipython需要ssl支持:
yum install openssl openssl-devel -y
此时就可以在/usr/local/python3.4/bin/下面看到编译生成的各个可执行文件了,不过比较好的是,python3以后就默认支持了easy_install,pip等工具了!
2.安装ipython以及notebook等相关插件
- #export PATH=$PATH:/usr/local/python34/bin/
- #pip3.4 install ipython
- #pip3.4 install ipywidgets
- #pip3.4 install jupyter jupyterhub
安装完之后如果没有问题的话应该就可以启动 ipython notebook了,
-
#ipython3 notebook –notebook-dir=/Users/xuxuebiao/python/notebook –port=8080 默认会打开本机自带的浏览器,并绑定到本地回环接口(127.0.0.1),其实这样是不能够让互联网上的用户访问的。因此需要加其他参数,比如:–ip 10.0.0.24
注意:(ipython notebook = jupyter-notebook)
3.打开jupyter界面,并进行web化的python操作
默认会打开这个界面,显示当前的文件
![Alt text](./1469463063110.png)
点击new可以选择链接终端并且能够打开支持notebook的语言
本文支持python3语言,其实还可以支持ruby,shell等
![Alt text](./1469463089939.png)
调用的terminal
![Alt text](./1469463306979.png)
注意事项:
- 有时候安装的python模块包和python加载的模块包路径并不一致,这个时候可以选择把第三方模块专门放在一个位置,并手动加载他们!
import sys;print(sys.path) 先查看python默认加载模块包的路径
也可以使用import ftplib;print(ftplib)查看
sys.path.append(‘path’) 然后将第三方模块的路径追加到python默认检测路径中同时将此操作写在配置文件中:export PYTHONPATH=$PYTHONPATH:/usr/local/python/lib/
- 在python3中,默认使用pip install是安装不了sqlite3的,因此就需要进行额外下载并进行安装了
import site; site.getsitepackages() 查看当前站点的包路径,进去lib-dynload查看是否有_sqlite.so模块
sqlite3的编译安装:
进入https://sqlite.org/download.html 下载sqlite-autoconf-3080401.tar.gz (https://sqlite.org/2016/sqlite-autoconf-3140000.tar.gz)
解压后进行编译:
./configure --prefix=/home/user/usr/db/sqlite && make && make install
需要注意的是,sqlite安装完成之后需要进行重新编译python
如果编译玩python3还是无法加载sqlite:
如果重新编译不能发现sqlite3模块的话,需要在Python-3.4.5/setup.py 进行编辑以下文件 455行.然后进行重新编译python3.4
add_dir_to_list(self.compiler.include_dirs, '/usr/local/db/sqlite/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/db/sqlite/include')
问题集锦:
启动报错:OSError: [Errno 99] Cannot assig
原因:默认绑定的是本地地址127.0.0.1 使用--ip 10.0.0.24 后即可解决
https://hub.docker.com/r/jupyter/jupyterhub/ 可以用来管理多用户使用,同时还有包含认证。
- 如何让jboss eap 6.2+ 的多个war应用共享 jar 包?
- scala 学习笔记(07) 一等公民的函数
- 让BASH,VIM美美的Powerline
- 极品三数666.cn易主,价格让人大惊!
- ui-router中使用ocLazyLoad和resolve
- rpc框架之 avro 学习 2 - 高效的序列化
- rpc框架之HA/负载均衡构架设计
- 使用Docker-Docker for Web Developers(2)
- 打造高效前端工作环境-tmuxinator
- 在Linux Mint上安装node.js和npm
- JS魔法堂:再识Number type
- (cljs/run-at (JSVM. :browser) "搭建刚好可用的开发环境!")
- (cljs/run-at (->JSVM :browser) "语言基础")
- 微博爬虫
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Codeforces Round #677 (Div. 3)
- PHP PDOStatement::fetchObject讲解
- PHP PDOStatement::getAttribute讲解
- Laravel框架自定义验证过程实例分析
- Codeigniter里的无刷新上传的实现代码
- django ObjectDoesNotExist 和 DoesNotExist的用法
- PHP PDOStatement::closeCursor讲解
- 使用python实现下载我们想听的歌曲,速度超快
- JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
- OpenCV4.1.0+VS2017环境配置的方法步骤
- 详解如何实现Laravel的服务容器的方法示例
- laravel 数据迁移与 Eloquent ORM的实现方法
- PDO::query讲解
- Laravel5框架自定义错误页面配置操作示例
- PHP-FPM和Nginx的通信机制详解