1 虚拟环境安装与配置
为什么需要虚拟环境?
Python 的虚拟环境与系统之间相互隔离,一个项目一个虚拟环境,不同的虚拟环境不会相互影响,最大程度避免包冲突。缺点就是会占用更大的空间。
参考
1.1 Windows
1、安装。安装完之后会在 Python 的可执行路径下安装一个 virtualenv 的 exe 文件。
pip install virtualenvwrapper-win
2、使用 mkvirtualenv 命令创建虚拟环境,安装时会默认基于 Python 默认版本去新建一个虚拟环境。
mkvirtualenv python_start
3、删除虚拟环境
rmvirtualenv python_start
创建的虚拟环境是默认 python 版本,也可以通过 -p 参数指定其他 Python 版本在创建虚拟环境:
mkvirtualenv -p {Python Path}\python.exe python_start
1.2 Linux
1、安装。如果下载比较慢,可以使用镜像。
pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple
2、配置
找到 virtualenvwrapper.sh 文件。这里不同的 Linux 系统 virtualenvwrapper.sh 路径可能不一致,最好通过 find 命令查询一下。
# CentOS
find / -name 'virtualenvwrapper.sh'
/usr/local/python3.13/bin/virtualenvwrapper.sh
# MacOS
/Library/Frameworks/Python.framework/Versions/3.13/bin/virtualenvwrapper.sh
编辑 .bashrc 文件:
vim ~/.bashrc
在最后添加下面内容:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3.13/bin/virtualenv
source /usr/local/python3.13/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3这句话表示当使用virtualenv去新建 python 虚拟环境的时候会到/usr/bin/python3位置去找 python 的可执行文件。
最后执行下面命令重新加载:
source ~/.bashrc
3、创建虚拟环境
# mkvirtualenv python_start
created virtual environment CPython3.13.0.final.0-64 in 153ms
creator CPython3Posix(dest=/root/.virtualenvs/python_start, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
added seed packages: pip==24.3.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /root/.virtualenvs/python_start/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/python_start/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/python_start/bin/preactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/python_start/bin/postactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/python_start/bin/get_env_details
(python_start) [root@chaos-3 Python-3.13.0]# python
Python 3.13.0 (main, Nov 4 2024, 04:09:22) [GCC 8.5.0 20210514 (Red Hat 8.5.0-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
4、虚拟环境目录
(python_start) [root@chaos-3 opt]# ls ~/.virtualenvs/
get_env_details postactivate postmkproject postrmvirtualenv predeactivate premkvirtualenv python_start
initialize postdeactivate postmkvirtualenv preactivate premkproject prermvirtualenv
其中 python_start 就是虚拟环境的地址。
5、虚拟环境常用命令
# 创建环境名
mkvirtualenv 环境名
# 退出环境
deactivate
# 进入环境
workon 环境名
# 删除环境
rmvirtualenv 环境名
# 列出所有环境
lsvirtualenv
1.3 MacOS
1.3.1 virtualenv
1、安装。如果下载比较慢,可以使用镜像。
pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
pip3 install virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
2、配置
找到 virtualenvwrapper.sh 文件。这里不同的 Linux 系统 virtualenvwrapper.sh 路径可能不一致,最好通过 find 命令查询一下。
➜ which python3
/Library/Frameworks/Python.framework/Versions/3.13/bin/python3
➜ which virtualenvwrapper.sh
/Library/Frameworks/Python.framework/Versions/3.13/bin/virtualenvwrapper.sh
编辑 .zshrc 文件:
vim ~/.zshrc
在最后添加下面内容:
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.13/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /Library/Frameworks/Python.framework/Versions/3.13/bin/virtualenvwrapper.sh
最后执行下面命令重新加载:
➜ source ~/.zshrc
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/get_env_details
3、创建虚拟环境
➜ mkvirtualenv python_learning
created virtual environment CPython3.13.0.final.0-64 in 275ms
creator CPython3Posix(dest=/Users/finnley/.virtualenvs/python_learning, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/Users/finnley/Library/Application Support/virtualenv)
added seed packages: pip==24.3.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/python_learning/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/python_learning/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/python_learning/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/python_learning/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/finnley/.virtualenvs/python_learning/bin/get_env_details
4、虚拟环境常用命令
# 列出虚拟环境列表
➜ lsvirtualenv
# 或者
➜ workon
python_learning
#启动/切换虚拟环境
workon [虚拟环境名称]
# 删除虚拟环境:
rmvirtualenv [虚拟环境名称]
# 离开虚拟环境,和virtualenv 一样:
deactivate
1.3.2 venv
1、创建虚拟环境。Python 虚拟环境用于将软件包安装与系统隔离开来。
创建一个新的虚拟环境,方法是选择 Python 解释器并创建一个 ./venv 目录来存放它:
# Linux or MacOS
python3 -m venv --system-site-packages ./venv
# Windows
python -m venv --system-site-packages .\venv
使用特定于 shell 的命令激活该虚拟环境:
# sh, bash, or zsh
source ./venv/bin/activate
# csh or tcsh
source ./venv/bin/activate.csh
# csh or tcsh
source ./venv/bin/activate.csh
当虚拟环境处于有效状态时,shell 提示符带有 (venv) 前缀。 在不影响主机系统设置的情况下,在虚拟环境中安装软件包。首先升级 pip:
pip3 install --upgrade pip
pip3 list # show packages installed within the virtual environment
之后退出虚拟环境:
deactivate # don't exit until you're done using TensorFlow
我的操作,比如:
Envs python3 -m venv --system-site-packages ./cat-srvs
➜ Envs source ./cat-srvs/bin/activate
(cat-srvs) ➜ Envs pip list
Package Version
---------------- ---------
certifi 2020.12.5
chardet 4.0.0
idna 2.10
jsonrpclib-pelix 0.4.2
pip 21.0.1
requests 2.25.1
setuptools 49.2.1
urllib3 1.26.3
WARNING: You are using pip version 21.0.1; however, version 21.1.3 is available.
You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m pip install --upgrade pip' command.
(cat-srvs) ➜ Envs pip install --upgrade pip
Requirement already satisfied: pip in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (21.0.1)
Collecting pip
Downloading pip-21.1.3-py3-none-any.whl (1.5 MB)
|████████████████████████████████| 1.5 MB 349 kB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.0.1
Uninstalling pip-21.0.1:
Successfully uninstalled pip-21.0.1
Successfully installed pip-21.1.3
(cat-srvs) ➜ Envs pip list
Package Version
---------------- ---------
certifi 2020.12.5
chardet 4.0.0
idna 2.10
jsonrpclib-pelix 0.4.2
pip 21.1.3
requests 2.25.1
setuptools 49.2.1
urllib3 1.26.3
(cat-srvs) ➜ Envs deactivate
➜ Envs
2、删除虚拟环境,只需要删除项目目录下的虚拟环境目录即可。
1.3.3 uv
uv 是 Astral 公司开发的极快的 Python 包管理和项目管理工具(用 Rust 编写),它可以替代 virtualenv 来创建虚拟环境。
创建虚拟环境的基本命令 在项目目录下运行:
uv venv
- 这会在当前目录下创建一个名为
.venv的虚拟环境(默认名称)。 - 如果需要指定自定义目录名,例如
myenv:uv venv myenv
指定 Python 版本 如果你想使用特定 Python 版本创建环境:
uv venv --python 3.12
- uv 会自动下载和管理所需的 Python 版本(如果系统中没有)。
- 支持如
3.12.0、pypy@3.10等精确指定。
**### 包含 seed 包(可选)
默认情况下,uv 创建的虚拟环境不包含 pip、setuptools 和 wheel(因为 uv 自己处理依赖)。如果需要兼容传统工具(如某些 IDE 或 Jupyter),添加 --seed:
uv venv --seed
**### 激活虚拟环境 创建后激活环境:
- macOS/Linux:
source .venv/bin/activate - Windows(PowerShell):
.venv\Scripts\Activate.ps1 - Windows(CMD):
.venv\Scripts\activate.bat
激活后,你可以用 uv pip install 或直接 uv add(在项目中)安装包。
**### 示例完整流程
# 创建环境(默认 .venv)
uv venv
# 激活(Linux/macOS 示例)
source .venv/bin/activate
# 安装包
uv pip install requests
# 运行脚本
python your_script.py
uv 创建虚拟环境的速度远超 python -m venv,推荐在项目中使用 uv init 初始化项目,它会自动处理环境和依赖。
更多详情可查看官方文档:https://docs.astral.sh/uv/
2 pip配置
更新pip版本到最新
pip3 install --upgrade pip
查看当前源
➜ pip3 config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
global.trusted-host='pypi.tuna.tsinghua.edu.cn'
镜像加速配置
# 配置
pip3 config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
pip3 config set global.trusted-host mirrors.cloud.tencent.com
3 更新日志
- 2024.11.04 更新 Python 版本为 3.13。
- 2025.09.29 更新 Python Pip 镜像加速配置。