python项目开发中的潜规则
一般情况下,我们每次创建项目,都会为项目创建一个虚拟环境
- 先创建虚拟环境:test
- 再创建项目
- 项目+环境 关联起来,以后就可以利用这个环境专门去运行项目
1. 创建虚拟环境
- venv
1.1 venv安装在python解释器。
1.2 利用venv创建
在自己的终端(命令行) 1 2
| cd /Users/mac/work/python python3 -m venv test
|
2. 安装和管理多个Python版本
在开发过程中,我们经常需要在不同项目中使用不同版本的Python。以下是几种在Mac上安装和管理多个Python版本的方法,而不会覆盖系统自带的Python版本。
2.1 使用pyenv管理多版本Python
pyenv是专门用于管理多个Python版本的工具,它不会影响系统自带的Python。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| brew install pyenv
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
source ~/.zshrc
pyenv install 3.9.0
pyenv versions
brew install pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
source ~/.zshrc
pyenv virtualenv 3.9.0 test_env
pyenv activate test_env
pyenv shell 3.9.0 python -m venv my_project_envs
|
注意: 如果遇到 Failed to activate virtualenv
错误,通常是因为 pyenv-virtualenv 没有正确加载到你的 shell 中。确保已经添加了上述配置到 ~/.zshrc
文件并重新加载配置。
2.2 使用conda管理Python环境
Miniconda或Anaconda可以同时管理Python版本和包:
1 2 3 4 5 6 7 8
| brew install --cask miniconda
conda create -n my_project_env python=3.9
conda activate my_project_env
|
2.3 使用Docker容器
如果你熟悉Docker,可以为每个项目创建一个带有特定Python版本的容器:
1 2 3 4 5
| FROM python:3.9 WORKDIR /app COPY . . RUN pip install -r requirements.txt
|
2.4 使用asdf版本管理器
asdf是一个通用的版本管理工具,也支持Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| brew install asdf
asdf plugin add python
asdf install python 3.9.0
asdf local python 3.9.0
python -m venv test_env
|
3. 使用虚拟环境
3.1 使用标准venv创建的虚拟环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
test\Scripts\activate
source /Users/mac/.pyenv/versions/test_env/bin/activate
(test_env) $
pip install numpy pandas
deactivate
|
3.2 使用pyenv-virtualenv创建的环境
1 2 3 4 5 6 7 8
| pyenv activate my_project_env
pip install requests
pyenv deactivate
|
3.3 使用conda创建的环境
1 2 3 4 5 6 7 8 9 10
| conda activate my_project_env
conda install numpy
pip install numpy
conda deactivate
|
3.4 虚拟环境的常用操作
1 2 3 4 5 6 7 8 9 10 11
| pip list
pip freeze > requirements.txt
pip install -r requirements.txt
pip install --upgrade pip
|
记住,只有在激活虚拟环境后,你安装的包才会被安装到虚拟环境中,而不是系统的Python环境。