python将依赖和源码打包在一起的方法
Python 项目在不同环境中部署时,经常会遇到安装依赖的问题,为了避免多个环境引起的重复劳动,可以将依赖和源码打包在一起交付。
一、依赖打包在源码仓中的好处
1、提高代码的可移植性
将依赖打包在源码仓中可以保证代码的可移植性,可以在不同的环境中快速部署和运行代码,而无需手动安装依赖包。这对于团队协作和持续集成等场景非常有用。
2、方便代码版本控制和管理
将依赖打包在源码仓中可以方便代码的版本控制和管理,可以确保每个代码版本对应的依赖版本一致,避免因依赖版本的变化导致代码无法运行或出现异常等问题。
3、简化依赖管理
将依赖打包在源码仓中可以简化依赖管理,可以避免依赖版本冲突和依赖缺失等问题,降低了依赖管理的复杂度。
4、提高代码的可重复性
将依赖打包在源码仓中可以提高代码的可重复性,可以确保每次部署或运行的环境一致,避免因环境变化导致的问题,也方便调试和排查问题。
需要注意的是,将依赖打包在源码仓中也有一些缺点,如增加了代码仓库的大小、增加了代码发布的复杂度等。因此,在实际应用中需要根据具体情况进行选择和权衡。
二、具体实践
2.1、获取依赖
仓库目录下执行,生成requirements.txt 文件
pipreqs ./
生成requirements.txt 其他办法以及详细步骤请查阅 https://blog.csdn.net/yuelai_217/article/details/125976885
2.2、安装依赖在仓库中
如下,安装依赖在当前目录libs中,命令会自动创建目录
pip install -r requirements.txt --target=./libs
2.3、依赖包的使用
以django 为例:
import syssys.path.insert(0, './libs')import django
sys.path.insert(0, './libs')
将 ./libs 目录添加到 Python 模块搜索路径中,使得 Python 可以在该目录中查找并加载依赖包。import django 则引入了本地仓库中的 django 模块
三、使用virtualenv
相比直接安装依赖在本机环境中,使用virtualenv有以下优点
-
独立性:虚拟环境可以隔离不同项目使用的 Python 库,避免不同项目之间的依赖冲突。
-
灵活性:虚拟环境可以轻松地创建、删除、切换和共享,并且可以在不同的 Python 版本和操作系统之间移植。
-
安全性:虚拟环境可以避免对系统 Python 环境造成损坏,因为在虚拟环境中安装和卸载 Python 库不会影响系统 Python 环境
具体实现如下:
3.1、安装virtualenv
pip install virtualenv
3.2、创建虚拟环境:
virtualenv myenv(myenv)
这会在当前目录下创建一个名为 “myenv” 的虚拟环境,终端中。
3.3、激活虚拟环境:
source myenv/bin/activate(myenv)
激活虚拟环境后,当前终端会话中使用的 Python 环境将会切换到虚拟环境中的 Python 环境,终端中每输入一条命令的返回值下方均有(myenv),意味着处在虚拟环境中。。
3.4、在虚拟环境中安装 Python 库:
pip install -r requirements.txt --target=./libs
在虚拟环境中安装的 Python 库只会在当前虚拟环境中生效,不会影响系统 Python 环境或其他虚拟环境。
3.5、退出虚拟环境:
deactivate
退出虚拟环境后,当前终端会话中使用的 Python 环境将会切换回系统 Python 环境。
来源地址:https://blog.csdn.net/yuelai_217/article/details/131126961
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341