Linux 冷知识
① python -m pip
参考文章:Why you should use python -m pip
文章讲的是为什么下载库时最好用 python -m pip install
而不是 pip install
,因为如果系统中存在多个 python,那么直接用 pip 下载可能会使库下的位置和你想的 python 版本位置对不上,而使用 python3.7 -m pip install
或者 python3.8 -m pip install
则可以明确的指定安装的位置。但如果你本身处于虚拟环境中,比如 anaconda、virtualenv / virtualenvwrapper 中,那么直接使用 pip 下载也是可以的(但是作者说最好还是 python -m pip install
)
PS:当你下载一些库时,提示使用 python -m pip install <pkn>
,可能会报错 /bin/python: No module named pip
,这时换成 python3 -m pip install <pkn>
就好了
② 创建独立虚拟 python 环境的神器: virtualenv 和 virtualenvwrapper
参考文章:Python三神器之virtualenv、virtualenvwrapper
官方网站:virtualenv、virtualenvwrapper
这俩神器的作用与 anaconda 类似(如果你听说过的话),建议在 Windows 上用 anaconda,在 Linux(或 WSL)上用 virtualenv / virtualenvwrapper
众所周知,Linux Ubuntu 自带两个版本的 python,分别是 python 2.7 和 python 3.8,那么虚拟环境的就是在已有版本的基础上上建立的
virtualenv 与 virtualenvwrapper 最大的不同,前者是在当前目录下创建文件夹,后者在用户目录($HOME/.virtualenvs)创建文件夹
下载方法
# virtualenv
python3 -m pip install --user virtualenv
python3 -m virtualenv --help
# -------------------------------------------------
# virtualenvwrapper
sudo pip install virtualenvwrapper
# 在 ~/.zshrc 最下面添加以下内容
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.zshrc
# 在 /usr/local/bin/virtualenvwrapper.sh 中替换以下内容
# VIRTUALENVWRAPPER_PYTHON="$(command \which python)" --> VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"
使用方法
# virtualenv
virtualenv -p python2 venv # 在当前目录下建立虚拟环境文件夹 venv,版本为 python 2.7
virtualenv -p python3 --no-site-packages venv # 同上,但不依赖系统环境中的 site packages,且版本为 python 3.8
cd venv # 进入虚拟环境文件夹中
source bin/activate # 开启虚拟环境
deactivate # 退出虚拟环境
# -------------------------------------------------
# virtualenvwrapper
workon # 列出虚拟环境列表
workon <envs> # 切换虚拟环境
mkvirtualenv -p python3 venv # 新建虚拟环境 venv,创建目录为 $HOME/.virtualenvs/,版本为 python 3.8
rmvirtualenv venv # 删除虚拟环境
deactivate # 离开虚拟环境
PS:如果你只是想使用不同的 python 版本运行脚本,只需要切换使用 python name.py
和 python3 name.py
即可
③ pipx
参考文章:Pipx:在隔离环境中安装和运行 Python 应用
官方网站:pipx
pipx 可以为每一个 PyPI 托管中的库单独生成一个虚拟环境,适用于测试某个库时,一键安装并测试,用完即删
好处是运行不需要 sudo
权限,下载的库也是最新版本,甚至可以不用下载直接测试某网站上的库或者 .py 脚本
注意,它和 pip 没有半毛钱关系,即运行不会影响到你所有的程序
# 下载方法
python3 -m pip install --user pipx -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
python3 -m pipx ensurepath
sudo apt install python3.8-venv
# 使用方法
pipx list # 查看所有已安装的应用
pipx install <pkn> # 下载特定应用
pipx uninstall <pkn> # 卸载特定应用
pipx upgrade <pkn> # 更新特定应用
pipx upgrade-all # 更新全部应用
pipx run pycowsay moooo # 直接运行某个库,不用下载
pipx run <website>.<pyn>.py
PS:你可能会说,啊,既然能直接运行库和脚本,为什么要下载呢?这是因为有的测试可能同时需要多个库,单独运行某个库完成不了