kaggle里的代码都是jupyter notebook 中的,我们也装一个,在python 2.7版本下安装会报字体错误,无法打开jupyter notebook所以需要安装多版本python

1.多版本python环境管理器安装

参考链接:https://www.linuxidc.com/Linux/2018-04/151988.htm

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

修改bashrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

查看可用python版本

pyenv install --list

安装python可能用到的依赖包

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

安装所需版本python,例如

pyenv install anaconda3-4.1.0 -v
#输出显示
/tmp/python-build.20170108123450.2752 ~
Downloading Anaconda3-4.1.0-Linux-x86_64.sh...
-> https://repo.continuum.io/archive/Anaconda3-4.1.0-Linux-x86_64.sh

可以复制链接手动下载,这样更快一些:

执行 pyenv install anaconda3-4.1.0 -v 获取下载链接
用wget从下载链接中获取文件 Anaconda3-4.1.0-Linux-x86_64.sh
将安装包移动到 ~/.pyenv/cache/Anaconda3-4.1.0-Linux-x86_64.sh
重新执行 pyenv install anaconda3-4.1.0 -v 命令。该命令会检查 cache 目录下已有文件的完整性,若确认无误,则会直接使用该安装文件进行安装。
安装过程中,若出现编译错误,通常是由于依赖包未满足,需要在安装依赖包后重新执行该命令。

更新数据库
在安装 Python 或者其他带有可执行文件的模块之后,需要对数据库进行更新:

pyenv rehash

查看当前已安装的 python 版本

pyenv versions

其中的星号表示当前正在使用的是系统自带的 python。

设置全局的 python 版本
 

$ pyenv global anaconda3-4.1.0
$ pyenv versions
system
* anaconda3-4.1.0 (set by /home/seisman/.pyenv/version)

当前全局的 python 版本已经变成了 anaconda3-4.1.0。也可以使用 pyenv local 或 pyenv shell 临时改变 python 版本。

确认 python 版本
 

$ python
Python 3.5.2 (Anaconda 4.1.0, Sep 10 2014, 17:10:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

pyenv 其他功能
pyenv uninstall  - 卸载某个版本
pyenv update  - 更新pyenv及其插件

2.安装pip3

sudo apt install python3-pip

pip3 --version

sudo  apt install build-essential python3-dev python3-setuptools

更新pip

提示错误:module 'pip' has no attribute 'main'

解决方法参考链接:https://www.jianshu.com/p/373d04d80f3e

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
python3 get-pip.py

jupyter notebook 报错:ImportError: cannot import name 'Type'

据说这个type模块只有python3.5以上才能用,我们安装的是3.5.1呀,不知道为什么不行,反正是版本之间的冲突问题,降级tornado后可以打开了

参考链接:

pip3 install tornado==5.1.1

虽然可以打开jupyter notebook了,但是里边似乎是识别的python2环境,先凑合用吧,使用pyenv切换环境以后,之前安装的python包也不能用了,需要重新安装。

虽然安装了这个多版本python管理器,但是并没有什么用,还是给系统直接装两个python,再分别安装pip、pip3并升级到最新版本,之后缺什么包,就用相应的pip/pip3进行安装。

 

3.测试

按照教程跑一下代码

# data analysis and wrangling
import pandas as pd
import numpy as np
import random as rnd

# visualization
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

# machine learning
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier

这里会提示一个错误,根据得到解决

就到错误提示的目录里面找到font_manager.py文件,将其大约在231行左右的direc = os.path.abspath(direc).lower() 改为:direc = direc.split(‘\0’, 1)[0]就可以解决了。 

train_df = pd.read_csv('./train.csv')
test_df = pd.read_csv('./test.csv')
combine = [train_df, test_df]

这里默认路径是home,所以把下载下来的csv文件放到home下就可以读取了

接着就是按照教程来:https://www.kaggle.com/startupsci/titanic-data-science-solutions

调用matplotlib又出现了版本问题:

sudo pip install matplotlib==2.2.0

因为版本问题太多,大多是是因为版本不够新,而新版本的包多只支持python3,所以系统安装python3,并在python3环境下操作,使用pip3安装相应包。