Anaconda 配置与使用
Windows 系统安装 Miniconda
Windows 下安装 Anaconda/Miniconda 比较简单,只需在清华镜像站下载后按引导程序安装即可。
不过有时候可能安装完后需要手动添加环境变量,即在 System Path 中添加以下目录:
D:ProgramFilesMiniconda
D:ProgramFilesMinicondaScripts
D:ProgramFilesMinicondaLibraryin
D:ProgramFilesMiniondaLibraryusrin
D:ProgramFilesMinicondaLibrarymingw-w64in
Windows 下移动环境和包的位置
对于 Windows 系统,新建环境和缓存会加载到 C 盘用户目录,可修改到其他位置。
打开 .condarc 文件,添加 envs_dirs 和 pkgs_dirs。
channels:
- conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
envs_dirs:
- D:ProgramFilesMinicondaenvs
- C:Userswang.condaenvs
pkgs_dirs:
- D:ProgramFilesMinicondapkgs
- C:Userswang.condapkgs
Conda 更新软件源
Anaconda 安装后,需及时更新 Conda 和 Pip 的软件源。
Conda 更新源命令为:
conda config --show-sources # 查看有哪些源
conda config --get channels # 查看源的优先级
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 添加清华源
conda config --add channels conda-forge # 添加 conda-forge 源
conda config --set show_channel_urls yes # 设置搜索时显示源地址
更改源后 Linux 和 Windows 用户目录下都会生成 .condarc 文件,用于索引环境,Python 包和软件源的路径。
Pip 更新软件源
Pip 可在安装模块时临时选择某个镜像源:
pip install [pak_name] -i https://pypi.tuna.tsinghua.edu.cn/simple
# 其他镜像源
https://pypi.mirrors.ustc.edu.cn/simple # 中科大
http://mirrors.tencentyun.com/pypi/simple # 腾讯云
http://mirrors.aliyun.com/pypi/simple # 阿里云
永久修改源的方法:
Linux 下,修改 ~/.pip/pip.conf 配置文件,没有就创建一个。
Windows 下,修改 C:Users<user name>AppDataRoamingpippip.ini 配置文件,没有就创建一个。
在配置文件中添加以下内容:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host = mirrors.aliyun.com
或者直接输入以下命令修改镜像源。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Conda 常用命令
conda info # 查看 conda 信息
conda --version # 获取版本号
conda env list # 列出所有环境
conda list # 列出所有已安装的包
conda create -n [env_name] # 创建环境
conda create -n [env_name] numpy matplotlib python=3.11 # 创建指定版本下包含某些包的环境
conda activate [env_name] # 进入环境
conda deactivate # 退出环境
# 新建环境需安装 ipykernel 后方可在 VSCode Jupyter 中打开
conda install -n <环境名> ipykernel --update-deps --force-reinstall
conda install [pak_name] # 安装包
conda install [pak_name]=1.4 # 安装指定版本包
conda install [pak_name_1] [pak_name_2] [pak_name_3] # 同时安装多个包
conda remove -n [env_name] --all # 删除环境
conda remove [pak_name] # 删除包
conda uninstall [pak_name] # 删除包
conda clean --all -y # 清理所有缓存和未使用的内容
conda clean -p # 清理没有使用的包
conda clean -i # 清除索引缓存
conda update/upgrade --all # 升级环境中所有包
conda update python # 升级 python 到最新版
conda update conda # 升级 conda
conda update anaconda # 升级 anaconda, 需先升级 conda
# 彻底卸载 anaconda 未测试,待验证
conda install anaconda-clean
anaconda-clean --yes
Pip 常用命令
pip --version # 查看 pip 版本
pip install --upgrade pip # 升级 Pip 版本
pip list # 列出已安装的包
pip list -o # 查看哪些包可以升级
pip install --upgrade [pak_name] # 升级包
pip check [pak_name] # 检查包是否存在依赖问题
pip install [pak_name] # 安装包
pip install [pak_name_1] [pak_name_2] [pak_name_3] # 同时安装多个包
pip install [pak_name]==1.1.2 # 指定安装包的版本
pip install [pak_name].whl # 从 whl 文件安装包
pip install -r requirements.txt # 批量安装项目依赖项
pip uninstall [pak_name] # 卸载包
pip freeze > requirements.txt # 将包列表写进依赖项清单
Pip 和 Conda 的区别
Conda 同时管理 Python 包和环境,Pip 只管理包,Virtualenv 只管理环境。
conda install 安装的包在 anaconda3/pkgs 目录下。
当甲环境安装了某个包,乙环境需重复安装该包时,就可以直接从 anaconda3/pkgs 将包复制至乙环境,避免重复下载。
pip install 安装的包,分两种情况:
如果当前 Python 是由 Conda 安装的,则包会安装在:
anaconda3/envs/current_env/lib/python3.x/site-packages
如果当前 Python 是自行安装的,包会安装在:
~/.local/lib/python3.x/site-packages
常见问题
Solve environment 速度极慢
Conda 在安装新包会检索整个环境,导致 Solve environment 的速度极慢。当环境中包越多,需要的时间则越久。
可使用 Mamba 加快下载速度解决这一问题。
或者更正环境和包的管理原则,即 Conda 只用来管理环境,Pip 只用来管理包。
Windows 系统 Jupyter 无法跳转到浏览器
在 Windows 系统下,安装 Jupyter Lab 或 Jupyter Notebook 后,偶尔出现从命令行启动无法跳到浏览器页面。
解决办法有:
生成 Jupyter 配置文件。
# jupyter lab
jupyter lab --generate-config
# jupyter notebook
jupyter notebook --generate-config
进入 .jupyter 目录,找到 jupyter_notebook_config.py 文件并修改。
# 找到
c.NotebookApp.browser = ' '
# 修改为
import webbrowser
webbrowser.register("chrome",None,webbrowser.GenericBrowser("C:Program Files(x86)MicrosoftEdge DevApplicationmsedge.exe"))
c.NotebookApp.browser = 'chrome'
修改 Windows 系统下 Jupyter lab 默认目录
Jupyter 默认是用户目录,可进行修改。
打开 jupyter_notebook_config.json, 文件若不存在可手动创建。
修改的内容为:
{
"NotebookApp": {
"nbserver_extensions": {
"jupyterlab": true
},
"notebook_dir":"D:/Archives/Python"
}
}
虚拟环境下打包 Python 文件为 exe
创建一个无默认包的新环境。
conda create --name dabao --no-default-packages python=3.10
进入新环境。
conda activate dabao
升级 pip 并设置清华源。
python -m pip install --upgrade pip &&
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装打包文件中必要的模块。
pip install pyinstaller flaml pandas matplotlib
切换到新目录并打包。
Pyinstaller -F -i yue.png --add-data "D:ProgramFilesAnacondaenvsdabaoLibsite-packagesxgboost;./xgboost" yuechao.py
blocking request with non-local 'Host' error
Jupyter 服务器默认只允许本地主机的请求,当收到非本地主机的请求时,会阻止该请求。你可以通过设置 ServerApp.allow_remote_access 来禁用这个检查。
生成配置。
jupyter lab --generate-config
修改配置。
# 编辑
vim ~/.jupyter/jupyter_notebook_config.py
# 修改以下内容为 True
c.ServerApp.allow_remote_access = True