本文以 macOS 系统为例,介绍搭建 Python 3.9 开发环境的方法,同样适用于 Linux 和 Windows 系统,以及其他版本的 Python。该方案的优点包括环境隔离,不与原系统产生冲突;轻量灵活,如果不再需要,可以快速清除。
方案简单概括:通过 conda 管理 Python 版本,通过 venv 管理 Python 环境。
这里推荐安装 Miniconda, 而不是 Anaconda, 因为 Miniconda 体积更小,我们可以自主选择需要安装哪些依赖包。
版本选择:支持 Python 3.9 的最新版。如下图所示,可以看到支持各个平台的安装包,这里选择 Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh
.
下载到 /opt
目录下,并安装到该目录下。由于 /opt
目录的 owner 一般是 root
, 那么在该目录下执行命令,需要用 sudo
; 当然也可以事先修改 owner 为自己。
sudo chown <username>:staff/opt # 不是必须,但建议修改
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh
chmod a+x Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh
./Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh
# 安装目录手动设置为 /opt/miniconda3
安装完成,选择初始化
[/Users/henry/miniconda3] >>> /opt/miniconda3
PREFIX=/opt/miniconda3
Unpacking payload...
Installing base environment...
Downloading and Extracting Packages:
Downloading and Extracting Packages:
Preparing transaction: done
Executing transaction: \
done
installation finished.
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[yes] >>> yes
no change /opt/miniconda3/condabin/conda
no change /opt/miniconda3/bin/conda
no change /opt/miniconda3/bin/conda-env
no change /opt/miniconda3/bin/activate
no change /opt/miniconda3/bin/deactivate
no change /opt/miniconda3/etc/profile.d/conda.sh
no change/opt/miniconda3/etc/fish/conf.d/conda.fish
no change/opt/miniconda3/shell/condabin/Conda.psm1
modified/opt/miniconda3/shell/condabin/conda-hook.ps1
no change/opt/miniconda3/lib/python3.9/site-packages/xontrib/conda.xsh
no change /opt/miniconda3/etc/profile.d/conda.csh
modified/Users/henry/.zshrc
==> For changes to take effect, close and re-open your current shell. <==
Thank you for installing Miniconda3!
验证是否安装成功,打开新的终端窗口,看到有 (base)
字符,如下图所示,说明当前窗口,已经激活了 base 环境。(如上面的安装信息显示,默认会自动激活 base 环境)
以上命令输出信息说明 conda 和 Python 3.9.19 都已安装成功。 如果想默认不自动激活 base 环境,可以执行
conda config --set auto_activate_base false
这时会新增文件 ~/.condarc
, 写入如下配置信息。(等效于手动修改该文件)
auto_activate_base: true
从上面还可以看到,安装完 Miniconda3 以后,默认只有 base 环境,如果还想手动安装别的环境,比如 Python 3.7, 本小节介绍一下方法,没有这个需求的同学可以直接跳过。
在执行命令之前,先参照清华 Anaconda 镜像 文档,配置一下代理,这样会让接下来的操作更高效!我配置完以后,~/.condarc
完整内容如下。
auto_activate_base: false
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
接下来,创建名为 py37
的 Python 环境,命令如下
conda create -n py37 python=3.7.9
测试是否生效
退出环境,删除环境
conda deactivate
conda remove -n py37 --all
我是将虚拟环境安装在 /usr/local/lib/python3
目录下的 (手动新建,并确保 owner 是自己)
cd /usr/local/lib/python3
conda activate base
python -m venv venv-py39-tf2
source venv-py39-tf2/bin/activate
pip3 install -U pip setuptools wheel
# 接着安装需要的依赖包即可
为了在 PyCharm 中使用上述环境,按如下方式配置即可。
安装 pip 依赖包之前,先配置阿里云镜像源,新增文件 ~/.pip/pip.conf
, 内容如下
[global]
index-url=http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com
Python 3.8 不支持 TensorFlow 1.x; Python 3.7 引入了新模块 dataclasses
, 推荐使用。
cd /usr/local/lib/python3
conda activate py37
python -m venv venv-py37-tf1
source venv-py37-tf1/bin/activate
pip3 install -U pip 'setuptools<42' wheel
# 接着安装需要的依赖包即可
如果您需要搭建其他环境,可以参考本文介绍的方法。遇到问题时,可以先咨询 AI。在如下「知源笔记」公众号中,输入”chat”(只需四个英文字母),即可免费使用。
下一篇,我们将介绍如何搭建 JupyterLab 4,使用这一强大的 Web IDE 进行交互式 Python 代码开发。