Python virtualenv
pip是Python包管理器,用于安装和更新软件包,需要确保系统已经安装了最新版本的pip。
使用pip可以安装Python虚拟环境管理器:对于Python 3使用venv,对于Python 2使用virtualenv。
pip
Ubuntu/Debian安装pip和venv
在 树莓派Raspberry Pi 400 作为日常开发环境,ARM架构的Ubuntu/Debian安装pip3:
pip3
以及 venv
apt install python3-pip
apt install python3-venv
如果安装pip2则执行:
apt install python-pip
备注
在 Django开发环境(linux) 同样也使用virtualenv来构建Django开发环境
arch安装pip和venv
默认python即是python3,安装
python-pip
软件包:
sudo pacman -S python-pip
python -m venv ~/venv3
. ~/venv3/bin/activate
macOS安装pip和venv
macOS可以随着 Python3 安装 pip3 ,建议通过 Homebrew 安装最新版本:
Python 2 virtualenv
CentOS 7通过Yum安装(EPEL源)
安装:
yum -y update yum -y install python-pip pip2 install virtualenv virtualenv venv2
古老CentOS 7安装使用virtualenv
在非常古老的CentOS 7版本上安装virtualenv会遇到更多麻烦:
CentOS 7.2上执行
virtualenv venv2
会出现一下报错:Traceback (most recent call last): File "/bin/virtualenv", line 7, in <module> from virtualenv.__main__ import run_with_catch File "/usr/lib/python2.7/site-packages/virtualenv/__init__.py", line 3, in <module> from .run import cli_run, session_via_cli File "/usr/lib/python2.7/site-packages/virtualenv/run/__init__.py", line 7, in <module> from ..app_data import make_app_data File "/usr/lib/python2.7/site-packages/virtualenv/app_data/__init__.py", line 9, in <module> from platformdirs import user_data_dir ImportError: No module named platformdirs
这是因为操作系统自带的 pip2
版本过于陈旧,甚至直接执行 pip2.7 install --upgrade pip
都会报错:
You are using pip version 7.1.0, however version 21.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip
Using cached https://files.pythonhosted.org/packages/da/f6/c83229dcc3635cdeb51874184241a9508ada15d8baa3
37a41093fab58011/pip-21.3.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-wfciDf/pip/setup.py", line 7
def read(rel_path: str) -> str:
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-wfciDf/pip
解决的方法是手工下载安装pip的脚本:
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py sudo python get-pip.py
通过手工升级
pip
之后,再次安装virtuualenv环境就可以成功:sudo pip2.7 install virtualenv virtualenv venv2
CentOS 8通过dnf安装python 2virtualenv
备注
CentOS/RHEL 8默认使用Python 3,请参考 在RHEL/CentOS 8中使用Python
安装python 2 (默认CentOS 8只安装python 3):
sudo dnf install python2
安装python2的virtualenv:
cd ~ python2 -m virtualenv venv2
激活virtualenv:
source venv2/bin/active # 检查版本 python --version # 离开virtualenv沙箱 deactive
Python 3 venv
在RHEL/CentOS 8中使用Python 默认安装Python 3,或者在Ubuntu/Debian系统中按照上文方法完成
pip3
和venv
安装,或者 Arch Linux 系统中已经完成pip
安装,所以构建虚拟沙箱环境非常简单:
cd ~
python3 -m venv venv3
激活:
# bash 使用 activate
source venv3/bin/activate
# csh 使用 activate.csh
# source venv3/bin/activate.csh
备注
csh
的 source
必须是 activate.csh
,否则会报错:
Badly placed ()'s.'
一段时间之后,可能需要升级pip以及安装的所有软件包:
pip install --upgrade pip
pip list --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U