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后可以打开了
参考链接:
https://blog.csdn.net/qq_15256443/article/details/88316185
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
这里会提示一个错误,根据
https://blog.csdn.net/qq_36346262/article/details/79366266
得到解决
就到错误提示的目录里面找到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下就可以读取了
调用matplotlib又出现了版本问题:
https://ask.csdn.net/questions/710311
sudo pip install matplotlib==2.2.0
因为版本问题太多,大多是是因为版本不够新,而新版本的包多只支持python3,所以系统安装python3,并在python3环境下操作,使用pip3安装相应包。