Python Memo

Python 的配置, 使用和部分包的用法

安装 package 使用豆瓣的源

1
pip install $package -i http://pypi.douban.com/simple/

设置 package 源

官方默认源非常慢, 使用阿里云的镜像, 修改 ~/.pip/pip.conf

1
2
3
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple

手动指定安装的版本号

1
pip install 'stevedore>=1.3.0,<1.4.0'

升级所有使用 pip install 安装的 python package

1
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U

jupyter 远程模式

在远端开启 jupyter 服务, 然后在本地连接到远端. 之前的 python notebook 实现起来很麻烦, 需要用 nginx 代理转发, 现在有了 jupyter, 可以很方便地实现

  1. 远端, 在相应的目录下打开服务:

    1
    jupyter notebook --no-browser --port=8888
  2. 本地, 使用 ssh 连接远端的服务:

    1
    ssh -NL 8888:localhost:8888 gys@1080

注意, 在本地打开浏览器的时候会要求输入 token 或者密码, token 在服务器端, 例如, 在启动服务之后会给出下面的输出

1
http://localhost:8888/?token=5bac09b88b3366ce5ca7d2b95ea3e619879d94e2f1050b85

格式化配置

nuclide 使用 flake8 配置源码的自动格式化, 在使用中首先要安装

1
sudo pip install flake8

修改 flake8 的默认配置:

1
2
3
4
# ~/.config/flake8
[flake8]
ignore = E226,E302,E41
max-line-length = 500

jupyter notebook

扩展

1
2
3
4
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

notebook 中显示图片

1
2
3
4
5
% matplotlib inline
# 设置显示图像的尺寸
matplotlib.rcParams['figure.figsize']=[16, 9]
# 或者
matplotlib.rcParams["figure.dpi"] = 120

部分包的用法

matplotlib

保持坐标轴的尺度大小, 等比例缩放

这个需求源于在做数学公式识别的过程中, 需要把输入数据可视化出来同时需要保持输入数据的特征

1
2
3
4
import matplotlib.pyplot as plt
plt.plot(xs, ys, "bo")
plt.gca().set_aspect('equal', adjustable='box')
plt.show()

读取中文的方法

1
2
3
4
import codecs
with codecs.open(infile, 'r', "utf-8") as f:
pass
x.decode("UTF-8")

centos install python3

1
2
3
4
5
6
7
sudo yum -y update
sudo yum -y install yum-utils
sudo yum -y groupinstall development
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install python36u
sudo yum -y install python36u-pip
sudo pip3.6 install package_name