做淘宝客的网站所需空间,羽毛球最新赛事,成都广告制作厂家,重庆建设岗位培训系统不同的python项目#xff0c;可能会使用不同的python版本#xff0c;也会使用同一个包的不同版本。为了解决依赖冲突问题#xff0c;我们为不同项目建立不同的虚拟环境#xff0c;来实现依赖包的隔离版本锁定。
venv
venv是python#xff08;3.3以上版本#xff09;自带…不同的python项目可能会使用不同的python版本也会使用同一个包的不同版本。为了解决依赖冲突问题我们为不同项目建立不同的虚拟环境来实现依赖包的隔离版本锁定。
venv
venv是python3.3以上版本自带的轻量级虚拟环境管理工具。
1、创建虚拟环境
# 创建名为 myenv 的虚拟环境目录
python -m venv myenv 2、进入虚拟环境
source myenv/bin/activate3、安装依赖包
pip install requests numpy # 安装单个包
pip install -r requirements.txt # 通过文件批量安装
pip list # 查看当前环境已安装的包4、退出虚拟环境
deactivate5、实践中的注意事项
将虚拟环境目录如 .venv置于项目根目录并通过 .gitignore 忽略避免纳入版本控制。
定期运行 pip freeze requirements.txt 保存依赖列表确保环境可复现
Pipenv
参考文档https://github.com/pypa/pipenvhttps://pipenv.pypa.io/zh-cn/latest/basics.html
Pipenv 是 Python 的官方推荐由 PyPA 认可的依赖管理和虚拟环境工具。它旨在将 pip包安装、virtualenv虚拟环境创建和 Pipfile依赖声明的功能结合在一个命令行工具中提供更简洁、更一致的工作流。
1、安装Pipenv
pip install pipenv # 推荐用户级安装2、创建虚拟环境
pipenv install会生成一个Pipfile格式如下
[[source]]
url https://pypi.org/simple
verify_ssl true
name pypi[packages]
django ~4.0 # 兼容版本4.0.x
requests * # 任意版本不推荐
flask { version 2.0.1, extras [dotenv] } # 带额外特性
numpy 1.23.5 # 精确版本[dev-packages]
pytest 7.0 # 最小版本
coverage *[requires]
python_version 3.10 # 指定Python版本[scripts]
start python manage.py runserver
test pytest -v
lint flake8 .3、进入虚拟环境
pipenv shell退出虚拟环境
deactivate4、生成锁定版本的Pipfile.lock文件
手动编辑 Pipfile 后运行 pipenv lock 来生成新的 Pipfile.lock确保依赖被锁定。
5、命令的说明 check Checks for PyUp Safety security vulnerabilities and againstPEP 508 markers provided in Pipfile.clean Uninstalls all packages not specified in Pipfile.lock.graph Displays currently-installed dependency graph information.install Installs provided packages and adds them to Pipfile, or (if nopackages are given), installs all packages from Pipfile.lock Generates Pipfile.lock.open View a given module in your editor.requirements Generate a requirements.txt from Pipfile.lock.run Spawns a command installed into the virtualenv.scripts Lists scripts in current environment config.shell Spawns a shell within the virtualenv.sync Installs all packages specified in Pipfile.lock.uninstall Uninstalls a provided package and removes it from Pipfile.update Runs lock, then sync.upgrade Update the lock of the specified dependency / sub-dependency,but does not actually install the packages.verify Verify the hash in Pipfile.lock is up-to-date.6、实践中的注意事项
总是将 Pipfile 和 Pipfile.lock 一起提交到版本控制系统确保团队环境一致。
在生产环境中根据 Pipfile.lock 安装精确依赖 (推荐方式)pipenv install --deploy --ignore-pipfile
在Docker中使用Pipenv部署Python应用时无需创建虚拟环境pipenv install --system --deploy --ignore-pipfile
7、Dockerfile 示例
# 阶段 1: 构建环境
FROM python:3.10-slim as builder# 安装系统依赖根据应用需要调整
RUN apt-get update \apt-get install -y --no-install-recommends gcc build-essential \rm -rf /var/lib/apt/lists/*# 安装 pipenv
RUN pip install --no-cache-dir pipenv# 设置工作目录
WORKDIR /app# 复制依赖声明文件利用 Docker 缓存层
COPY Pipfile Pipfile.lock ./# 安装依赖到系统不创建虚拟环境
RUN pipenv install --system --deploy --ignore-pipfile# 阶段 2: 运行时镜像
FROM python:3.10-slim as runtime# 安装运行时依赖如需要
# RUN apt-get update apt-get install -y --no-install-recommends curl rm -rf /var/lib/apt/lists/*# 从构建阶段复制已安装的包
COPY --frombuilder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages
COPY --frombuilder /usr/local/bin /usr/local/bin# 设置工作目录
WORKDIR /app# 复制应用代码
COPY . .# 设置环境变量
ENV PYTHONUNBUFFERED1 \PYTHONDONTWRITEBYTECODE1# 暴露端口根据应用调整
EXPOSE 8000# 启动命令
CMD [gunicorn, app:app, --bind, 0.0.0.0:8000]
文章转载自: http://www.morning.srxhd.cn.gov.cn.srxhd.cn http://www.morning.rpzqk.cn.gov.cn.rpzqk.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn http://www.morning.ssglh.cn.gov.cn.ssglh.cn http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.rkqzx.cn.gov.cn.rkqzx.cn http://www.morning.dtrz.cn.gov.cn.dtrz.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.grpfj.cn.gov.cn.grpfj.cn http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn http://www.morning.080203.cn.gov.cn.080203.cn http://www.morning.jpgfx.cn.gov.cn.jpgfx.cn http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.prddj.cn.gov.cn.prddj.cn http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.lwcgh.cn.gov.cn.lwcgh.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn http://www.morning.wrysm.cn.gov.cn.wrysm.cn http://www.morning.rmyt.cn.gov.cn.rmyt.cn http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.kxbdm.cn.gov.cn.kxbdm.cn http://www.morning.zlrrj.cn.gov.cn.zlrrj.cn http://www.morning.rdnkx.cn.gov.cn.rdnkx.cn http://www.morning.dtgjt.cn.gov.cn.dtgjt.cn http://www.morning.tztgq.cn.gov.cn.tztgq.cn http://www.morning.rkdw.cn.gov.cn.rkdw.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.xbckm.cn.gov.cn.xbckm.cn http://www.morning.nypsz.cn.gov.cn.nypsz.cn http://www.morning.kgqpx.cn.gov.cn.kgqpx.cn http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn http://www.morning.xhsxj.cn.gov.cn.xhsxj.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.cfynn.cn.gov.cn.cfynn.cn http://www.morning.tnkwj.cn.gov.cn.tnkwj.cn http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn http://www.morning.gwgjl.cn.gov.cn.gwgjl.cn http://www.morning.bpncd.cn.gov.cn.bpncd.cn http://www.morning.cftkz.cn.gov.cn.cftkz.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.yghlr.cn.gov.cn.yghlr.cn http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.ykmg.cn.gov.cn.ykmg.cn http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn http://www.morning.gczqt.cn.gov.cn.gczqt.cn http://www.morning.csznh.cn.gov.cn.csznh.cn http://www.morning.rbyz.cn.gov.cn.rbyz.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.drndl.cn.gov.cn.drndl.cn http://www.morning.cdygl.com.gov.cn.cdygl.com http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn http://www.morning.dfckx.cn.gov.cn.dfckx.cn http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn http://www.morning.tfwr.cn.gov.cn.tfwr.cn http://www.morning.yrxcn.cn.gov.cn.yrxcn.cn