Python 搭建虚拟环境

简介

实际开发中,我们为了防止python安装的包污染用户环境,比如你是root用户,利用pip安装后的包会放在root的python安装录中,很可能会影响root用户的其他操作。我们用root用户使用pip安装软件包后,linux环境会报警告"Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour". 解决的方法很简答,安装虚拟环境即可。

安装虚拟环境

  1. 更新pip工具
python3 -m pip install --user --upgrade pip

python3 -m pip --version
  1. 安装虚拟环境
    如果你的版本是python 3.3以上,则不需要安装虚拟环境相应的库,自带了venv这个库,用这个库来搭建虚拟环境就可以了。如果是python2或者python 3.3以下的版本,需要手动安装虚拟环境virtualenv。
python3 -m pip install --user virtualenv

3.3以上版本自带的venv库来搭建虚拟环境。

python3 -m venv env

如果是python2或者python3.3以下版本用下边这个命令生成虚拟环境

python3 -m virtualenv env

本文接下来主要介绍用python3.3以上的版本。在当前目录下生成了env文件夹,文件夹里有python相关的基本环境。如果想在某个路径生成可以将env替换为具体路径,比如/data/env,这样生成的虚拟环境目录就在/data/env里。

激活虚拟环境

生成虚拟环境后,需要激活这个环境,这样所有的安装包就会安装在env里。激活虚拟环境说白了就是将虚拟环境写入你系统的环境变量

source env/bin/activate

你可以查看当前python是哪一个

which python

也可以执行

python -V

查看当前env虚拟环境中python的版本。

取消环境

可以通过

deactivate

上述命令取消虚拟环境,将退出虚拟环境,回到主机自己的python环境。

docker环境安装虚拟环境

我们可以通过dockerfile build 一个python程序的镜像。而众所周知,python程序肯定要安装必要的库,如果一个一个pip install会导致容器层级过多,所以我们一把将所用的库写入requirements.txt中,至于怎么写可以看我的其他文章。在容器中用root用户pip安装python库同样会提示"Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour"。
我们知道了虚拟环境搭建的原理,所以在dockerfile里定义一个变量表示虚拟环境的路径,然后将这个路径写入path变量即可。

ENV VIRTUAL_ENV=/opt/venv
RUN python -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

下面是我的一个程序用到的Dockerfile,大家可以感受下写法

FROM python:3.8

ENV VIRTUAL_ENV=/opt/venv
RUN python -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

COPY crawler/ /data/src
WORKDIR /data/src
RUN pip install --upgrade pip && pip install -r requirements.txt
CMD ["python", "main.py"]

总结

这里介绍了python虚拟环境的安装,并且也提供了Docker环境如何安装python虚拟环境。

原文链接 https://llfc.club/articlepage?id=2GCM7Nsxop37ijBGVvVSEGhlnV5

相关参考连接
https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/

https://stackoverflow.com/questions/48561981/activate-python-virtualenv-in-dockerfile

<think>首先,用户查询是:“我想查找使用Python搭建虚拟环境的方法 请问Python搭建虚拟环境的方法”。我需要基于提供的引用和系统指令来回答。 系统指令摘要: - 所有行内数学表达式使用 `$...$` 格式。 - 独立公式使用 `$$...$$` 并单独成段。 - LaTeX 语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如:[^1] - 回答结构清晰,帮助用户逐步解决问题。 提供的引用: - 引用[1]:Ubuntu系统下Python虚拟环境搭建方法,提到venv、virtualenv、pipenv。 - 引用[2]:Python搭建虚拟环境,提到用python3.3以上版本生成env文件夹,激活方法。 - 引用[3]:解释虚拟环境是什么:虚拟环境英文名是virtual environment,它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。[^3] 用户需求:查找使用Python搭建虚拟环境的方法。用户的问题很直接。 我的回答应该: - 结构清晰:逐步解释如何搭建Python虚拟环境。 - 使用中文。 - 引用适当的段落并添加引用标识。 - 生成相关问题。 由于引用中提到了Ubuntu,但用户的问题是通用的“使用Python搭建虚拟环境的方法”,我应该覆盖通用方法,但可以提及Ubuntu作为示例。 关键方法: - Python 3.3+ 自带 `venv` 模块。 - 其他工具如 `virtualenv` 和 `pipenv`。 - 步骤包括创建虚拟环境目录、激活环境、安装包等。 回答结构: 1. **介绍虚拟环境**:引用解释什么是虚拟环境。 2. **常用方法**:列出创建虚拟环境的主要方式。 3. **详细步骤**:一步一步描述如何使用 `venv` 或 `virtualenv` 创建和激活环境。 4. **示例代码**:包括命令行示例。 5. **结束并生成相关问题**。 数学表达式:用户查询没有涉及数学,所以可能不需要数学表达式。但如果有,比如在解释中,但这里可能不相关。 生成相关问题:在最后添加相关问题。 引用标识: - 当引用来自引用[1]、[2]、[3]的内容时,添加 [^1], [^2], [^3]。 完整回答框架: - 开头:解释虚拟环境的重要性。 - 主体: - 方法1:使用 `venv`(Python 3.3+ 内置)。 - 方法2:使用 `virtualenv`。 - 方法3:使用 `pipenv`。 - 步骤示例:给出创建和激活步骤。 - 结尾:总结。 - 生成相关问题。 确保语言通俗易懂。 </think>### Python虚拟环境搭建方法 在Python开发中,虚拟环境(virtual environment)是一个独立的容器,它允许你在隔离的环境中安装和管理项目的依赖包(如库和模块),避免不同项目间的依赖冲突[^3]。这是确保开发环境稳定性和可移植性的关键步骤。下面我将逐步介绍搭建Python虚拟环境的主要方法,这些方法基于Python标准库或常用工具,并在Ubuntu等系统上通用(但方法适用于大多数操作系统)。 #### 1. **常见方法概览** Python搭建虚拟环境的主流方式包括: - **`venv`模块**:Python 3.3及以上版本内置,不需要额外安装,是官方推荐的方法[^1]。 - **`virtualenv`工具**:适用于所有Python版本(包括Python 2和3),需要额外安装,但功能更灵活[^1]。 - **`pipenv`工具**:结合了虚拟环境和包管理的功能,适合复杂项目[^1]。 如果你的Python版本在3.3以上,建议优先使用`venv`;如果兼容旧项目或需要更多功能,可用`virtualenv`或`pipenv`。虚拟环境的容器化隔离机制确保依赖包互不影响[^3]。 #### 2. **详细搭建步骤** 以下步骤以`venv`方法为主(Python 3.3+),并补充其他方法的差异点。所有命令在终端(如Linux/Mac的Terminal或Windows的CMD/PowerShell)中执行。 **步骤1: 创建虚拟环境** - 打开终端,切换到你的项目目录(例如`~/my_project`)。 - 运行命令创建虚拟环境目录: ```bash python3 -m venv env # 使用venv模块创建名为"env"的虚拟环境目录 ``` - 这会生成一个新目录(如`env`),包含Python解释器、pip等基本环境文件[^2]。如果你想指定路径,可替换`env`为自定义路径,如`python3 -m venv /data/env`[^2]。 - **备选方法**: - 使用`virtualenv`:如果Python版本低于3.3或需要更多功能,先安装`virtualenv`: ```bash pip install virtualenv # 安装virtualenv工具 virtualenv myenv # 创建名为"myenv"的虚拟环境 ``` - 使用`pipenv`:安装后自动创建环境: ```bash pip install pipenv # 安装pipenv pipenv shell # 自动创建并激活虚拟环境 ``` **步骤2: 激活虚拟环境** - 在终端中激活环境,使后续命令运行在虚拟环境中: - 对于Unix/Linux系统(如Ubuntu): ```bash source env/bin/activate # 激活venv或virtualenv创建的环境 ``` - 对于Windows系统: ```cmd .\env\Scripts\activate.bat # 激活命令 ``` - 激活后,终端提示符通常会显示环境名(如`(env)`),表示你已进入虚拟容器[^2]。这时安装的包只影响当前环境。 **步骤3: 安装依赖包** - 在激活的环境中,使用pip安装所需包: ```bash pip install numpy pandas # 安装示例包 ``` - 所有包会存储在虚拟环境的`lib`目录下,不会污染系统Python。 **步骤4: 停用虚拟环境** - 完成工作后,停用环境以退出隔离状态: ```bash deactivate # 停用虚拟环境 ``` #### 3. **注意事项** - **虚拟环境的必要性**:它能防止项目间的依赖冲突(例如不同项目使用同一包的不同版本),提高开发效率[^1]。 - **跨平台兼容**:上述方法在Ubuntu、Windows和MacOS均可用。Ubuntu下建议使用`python3`命令确保调用Python 3[^1]。 - **删除环境**:直接删除生成的目录(如`rm -rf env`)即可。 - **常见问题**:如果遇到权限问题,在Ubuntu中可加`sudo`;安装工具失败时,检查pip版本(`pip --version`)。 通过虚拟环境,你可以轻松管理多个项目的依赖关系,确保开发环境的整洁和一致性[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋风辰

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值