面试题答案
一键面试创建虚拟环境
- pip:通常借助
venv
模块。例如在命令行中运行python -m venv myenv
,会在当前目录创建名为myenv
的虚拟环境。venv
创建的虚拟环境相对轻量级,只包含基本Python运行时和pip工具。 - conda:使用
conda create -n myenv python=3.8
命令,myenv
为虚拟环境名,python=3.8
指定Python版本。Conda会同时安装Python及相关依赖库,创建的虚拟环境更完备。
激活虚拟环境
- pip:在Windows下,对于
venv
创建的虚拟环境,激活命令为myenv\Scripts\activate
;在Linux或macOS下为source myenv/bin/activate
。 - conda:在Windows、Linux或macOS下统一使用
conda activate myenv
命令激活名为myenv
的虚拟环境。
删除虚拟环境
- pip:直接删除虚拟环境所在目录即可。例如在命令行中使用
rm -rf myenv
(Linux或macOS)或rd /s /q myenv
(Windows)。 - conda:使用
conda remove -n myenv --all
命令,conda
会自动清理该虚拟环境下安装的所有包及环境配置。
依赖管理
- pip:通过
requirements.txt
文件管理依赖。使用pip freeze > requirements.txt
生成该文件,记录当前环境已安装的包及其版本。部署时用pip install -r requirements.txt
安装相同依赖。但pip只专注于Python包,对非Python依赖(如C/C++库)支持有限。 - conda:使用
environment.yml
文件。conda env export > environment.yml
生成,文件不仅记录Python包,还包括非Python依赖。恢复环境用conda env create -f environment.yml
。Conda能处理更复杂依赖关系,尤其是涉及不同语言和系统级库的情况。
项目场景选择
- 纯Python轻量级项目:如果项目仅依赖Python标准库及少量纯Python第三方包,对非Python依赖无要求,选择
pip
。如简单的Web爬虫项目,仅需requests
、BeautifulSoup
等包,使用pip
创建和管理虚拟环境,生成requirements.txt
方便部署。 - 多语言复杂科学计算项目:当项目涉及Python与其他语言(如C/C++)混合编程,或依赖大量科学计算库(如NumPy、SciPy且需特定编译版本),选择
conda
。如深度学习项目,依赖CUDA等非Python库,conda
能方便管理整个环境,确保依赖正确安装和配置。