Jupyter升级python2.7到python3

系统 1209 0

折腾一上午,走了弯路,故总结一下。

----------------------------------------------以下是有问题的--------------最下面有正确方式------------------------------------------

jupyter有terminal,这个terminal其实就是linux环境,所以按照linux下python2.7升级python3操作就行。但愚蠢的我,找的参考文档(更换Jupyter Notebook 内核Python版本)里没有告诉我如何设置默认python执行版本,刚刚找到一篇旧博客(Linux 升级 Python 至 3.x)讲到了如何设置默认python版本,感谢。以下是同时保留了两个版本,并把默认版本设置为了3。

大概步骤简记如下:

(1)下载python3(因为我是在公司内网升级,所以是下载到本地,再上传服务器的):

            
              wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
            
          

(2)解压缩:

            
              tar -zxvf Python-3.7.0.tgz
            
          

(3)检查编译器执行环境(一般不需要检查,jupyter的环境肯定是有的):

            
              # cd Python-3.7.0
# sudo ./configure 
            
          

(4)安装:

            
              # sudo make 
# sudo make install
            
          

(5)验证,python -V出来的就是默认版本:

            
              # python -V
# python3 -V
            
          

(6)更换python3作为默认版本,首先通过如下命令可以看到jupyter执行的python依赖:

Jupyter升级python2.7到python3_第1张图片

将原来 python 的软链接重命名:

            
              mv /usr/bin/python /usr/bin/python.bak
            
          

将 python 链接至 python3:

            
              ln -s /usr/local/bin/python3 /usr/bin/python
            
          

这时,再执行python -V查看 Python 的版本就是3了:Python 3.7.4

不过这样设置后在terminal执行python是使用的python3,但jupyter页面显示的new下面还是python2。这个的设置应该是在kernel.json里面,可以在根目录查看一下这个文件的位置:

            
              $sudo find . -name kernel.json
./usr/share/jupyter/kernels/python2/kernel.json
            
          

修改kernel.json:

            
              {
 "display_name": "Python 3",
 "language": "python",
 "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ]
}
            
          

最后结果因为缺少No module named '_ctypes,所以失败了。。。。

 

最开始缺少_ctypes,用下面的方式解决了:

  • bzip2-devel(解决 import bz2 报错)
  • ncurses-devel(解决 import curses 报错)
  • sqlite-devel(解决 import sqlite3 报错)
  • gdbm-devel(解决 _dbm _gdbm 缺失)
  • xz-devel(解决 _lzma 缺失)
  • tk-devel(解决 _tkinter 缺失)
  • readline-devel(解决 readline 缺失)
  • libffi-devel(解决 _ctypes 缺失)
            
              yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel
            
          

然后又报缺失_ssl,网上找到两种解决办法,第一种:

            
              ./configure --with-ssl
make
sudo make install
            
          

这种方式对我的环境来说不好使,第二种:

            
              yum -y install openssl-devel
make
make install
            
          

最后发现这种下载包的方式就有问题,不适合jupyter。

-------------------------------------------以下是正解------------------------------------

还是在python2.7的jupyter /usr/bin 目录下执行如下命令来安装python3.6:

            
              sudo yum install python36 python36-pip 
sudo pip3 install jupyter
            
          

安装后是这样:

Jupyter升级python2.7到python3_第2张图片

如果执行第一条语句遇到下面的错误:

Jupyter升级python2.7到python3_第3张图片

那就把/etc/yum.repos.d/aliyun.repo删除或者重命名就可以解决。

原则上执行完上面两条语句,然后重启jupyter就可以使用了,但我又遇到重启不起来的问题,可能是缺少ssl?(我也不确定)执行了下面这条语句,就重启起来了:

            
              sudo yum -y install openssl
            
          

最后的效果是:

Jupyter升级python2.7到python3_第4张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论