文章目录

  • Installation and Implementation
  • Installation
  • Implementation
  • Pip & Conda
  • 卸载 anaconda
  • 安装库
  • Pip 换源
  • 临时换源
  • 永久换源
  • Conda 换源
  • 虚环境
  • Jupyter
  • Configuration
  • Some Basics
  • 函数列表
  • or
  • Reference


Installation and Implementation

Installation

如果使用源码编译,安装之前一定要装好 python 的各种依赖库,并注意 python 的安装位置

但推荐使用 anaconda ,因为 intel 的一些库非常有用但是又很难装,例如 mkl

Implementation

关于 python implementation,官方的版本是 Cpython,也就是 python.org

  • jit 的实现有 pypy 但是 pypy 对第三方的包支持并不好,例如 scipy 就安装失败
  • Jython 2012 年就停止更新;pyjion 是一个 sideproject 尚未正式发布;pyston 已经被 dropbox 放弃
  • swig 有一个很大的问题,swig 的 object 是不能够被 pickle 的,因此几乎不能用于并行计算。
  • numba 提供对部分库的支持
  • PyTorch 要出一个 JIT,可以期待一下

总之还是需要等待官方的 jit。但如果真的对性能有比较苛刻的要求的话,还是推荐使用 Cython。测评普遍表示,经过少量的增加静态类型的修改,可以让 python 程序运行速度变成原来的 70-80 倍。另外,直接用 Cpython 官方提供的拓展进行编写非常麻烦,不建议非 hardcore 和对性能有极致需求的人选择这条路。

Pip & Conda

卸载 anaconda

link

安装库

安装指定版本的库

pip install xxx==version

Pip 换源

临时换源
pip3 install <PythonModule> -i https://pypi.tuna.tsinghua.edu.cn/simple

这里我使用的是清华源,另外也可以选择:

  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:http://pypi.douban.com/simple/

推荐使用清华源,不推荐使用科大源。

永久换源

在 Linux 环境下,修改~/.pip/pip.conf(没有就创建)

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
Conda 换源

清华源已恢复
上科大源

虚环境

另外,在维护一个大项目的时候使用虚拟环境(virtualenv)真的很重要;当然也可以使用 conda 进行维护。

这里再附上 conda 虚拟环境管理的 link

用 conda 创建虚环境:

conda create -n <env_name> python=3

启动该虚环境:

conda activate <env_name>

退出虚环境:

conda deactivate

Jupyter

配置 jupyter notebook,如果需要多个版本的 python ,参考这个链接 ;当然 Jupyter 也可以配置 R 和 Julia,不过我不会用 R,也觉得 Julia 还是太不成熟;总体而言,python 的库真的非常多。

在服务器上配置 jupyter:

先生成 jupyter 默认配置文件

jupyter notebook --generate-config --allow-root

在命令行里输入 python 或者 ipython,输入如下命令,

>>> from notebook.auth import passwd

>>> passwd()
# 输入两次密码
# 将得到的那个字符串放在 ~/.jupyter/jupyter_notebook_config.py 的 c.NotebookApp.passwd 里
# 修改 c.NotebookApp.open_browser = False
# 可以修改端口 c.NotebookApp.port = xxxx  (这里端口不要设置为 0 - 1023)

关于jupyter背景,有一个叫做 jupyter themes 的插件可以让 jupyter 变成暗色主题。

在 jupyter 上配置虚拟环境 (这里介绍 conda 的方式) 这里贴上 stackoverflow link

source activate myenv
python -m ipykernel install --user --name <myenv> --display-name "Python (myenv)"

这里的第二行一定是在虚环境里允许(事实上,安装的虚环境就是这个 python 对应的虚环境)

另外,其实可以直接 conda install nb_conda_kernels ,这样 jupyter 能够自动识别 conda 虚环境,但就是名字显示出来有点丑。。。

Configuration

让 numpy 运行在 gpu 上的方法,使用 mxnet 和 minpy,这样几乎不会发生代码重构的事情,你所需要做的事情几乎就是一行的改变:把 import numpy as np 变成 import minpy.numpy as np ,对于极少数的问题,请参考 minpy 官方文档。当然,用 PyTorch 等框架进行一定程度的代码重构似乎也没什么问题。

Some Basics

(这一部分是我初学的时候并没有仔细看的语法)

函数列表

*** 在函数列表中的使用

or
a = A or B