一、为什么要进行包管理?

python中的三方包琳琅满目,提供了各种各样的功能,使得我们免于自己去手写很多代码。比如,我们在测试接口的时候,我们用到了request,我们在测试前端页面的时候,我们用到了webdriver的包,移动UI自动化测试我们用到了airtest的包,诸如此类,不胜枚举。于是,我们在“天长地久”的使用过程中,积累的三方包越来越多,具体有多少,大家可以在命令行执行pip list看一下,数量可能超出自己的想象哦。那么现在,领导给你一个任务,让你开发一个项目,开发完之后,部署到公共的服务器上面。对于这个场景的包管理,我认为有不少人是这么做的:先在本地开发完成,然后使用pip freeze >requirements.txt生成依赖包列表文件。然后将代码放到服务器上之后,继续使用pip install -r requirements.txt在服务器上将依赖包安装好。当然,你的代码跑的66的。但是,在这个项目之前,你可能已经做了很多其他的项目,那些项目也有很多当前项目用不到的依赖包,如果不考虑环境隔离,按照上面的方式去做,当前项目的依赖包就不仅仅是当前项目的依赖包了。也就是说你当前的项目可能只需要10个三方包,你可能装了100个,严重浪费了时间和空间。另外,你的A项目使用django 1.8,另外一个B项目使用django 2.1,怎么实现呢?这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

综上,包管理要解决的痛点就是:

1、不必要的包的安装,浪费时间

2、项目之间的依赖包隔离

二、怎么做

1、命令行

  • 先安装虚拟环境模块

pip3 install virtualenv # 安装virtualenv

  • 进入项目目录,创建python虚拟环境

cd haima_api

virtualenv --no-site-packages myvenv # myenv是虚拟环境名字,随便取

这样我们就创建好了haima_api项目的虚拟环境,参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来。

  • 激活虚拟环境

source myvenv/bin/activate

激活之后,命令行最前面会加上一个标识。如下。

这个时候,在命令行下面执行pip install安装后的包就只会安装到刚刚创建的虚拟环境下,只和当前的项目挂钩,与其他项目无关了。

2、使用pycharm

我们开发的时候,更多会使用到pycharm这个ide,新建项目的时候选择虚拟环境即可

pycharm使用虚拟环境创建项目

inherit global site-packages:勾选上的话代表创建的新项目需要copy一份全局包到虚拟环境。

Make available to all projects:勾选上,表示,当在虚拟环境下安装包的时候,copy一份到全局。

前面文章中一只提到了全局包和虚拟环境里的包,在此解释一下他们的存放位置:

全局包存放在python安装目录下的\Lib\site-packages子目录里。

虚拟环境包安装在关联的项目目录下面的\${虚拟环境名}\Lib\site-packages子目录里

三、项目部署时批量导包

  • 在当前虚拟环境下,通过pip freeze > requirements.txt(名字随意)
  • 在目标服务器上执行,pip install requirements.txt即可

综上,python项目间的包管理就是这么easy,当你要同时开发多个项目的时候,这个是必不可少的。

pycharm中 Make available to all projects的含义相关推荐

  1. 学习Pycharm使用方法(一):Pycharm中Make available to all projects的含义是什么

    Make available to all projects 一.为什么要进行包管理 二.怎么做 1.命令行(情况一) 第一步:先安装虚拟环境模块 第二步 :激活虚拟 环境 2.Pycharm(情况二 ...

  2. win10x64下安装anaconda、配置tensorflow并在jupyter和pycharm中使用tf

    文章目录 1 CUDA和cuDNN环境配置 1.1 查看电脑的显卡类型 1.2 CUDA安装 1.3 cuDNN的设置 1.4 环境变量配置 2 anaconda的安装 3 配置TensorFlow环 ...

  3. 明明已经安装了第三方库,但是Pycharm中却提示库不存在的解决办法

    明明之前已经安装了第三方库,但是运行代码时还是提示库不存在,那么此时就需要去在Pycharm中设置一下 使用Pycharm可以管理一些第三方库,方法如下 1.打开软件,通过路径[File]→[Sett ...

  4. pycharm中自带python环境_Pycharm中Python环境配置常见问题解析

    本文实例讲述了Pycharm中Python环境配置常见问题.分享给大家供大家参考,具体如下: 1.问题的发现 最近在用Pycharm下的命令行工具安装.运行jupyter notebook时kerna ...

  5. windows安装MongoDB环境以及在pycharm中配置可视化插件

    安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...

  6. Pycharm中一些不为人知的技巧pycharm技巧

    https://www.jianshu.com/p/e9a58704f572 Pycharm中一些不为人知的技巧 0.641 2019.04.08 15:25:50 字数 705 阅读 227 有时候 ...

  7. 解决Pycharm中SystemError报错

    报错描述 - 代码逻辑大致是, 开启线程, 监听kafka生产者push的topic消息. - 问题出现在监听过程中, 线程在接收几条topic之后出现报错, 不再处理数据 1 2 报错代码 Exce ...

  8. PyCharm中Directory与Python package的区别

    对于Python而言,有一点是要认识明确的,python作为一个相对而言轻量级的,易用的脚本语言(当然其功能并不仅限于此,在此只是讨论该特点),随着程序的增长,可能想要把它分成几个文件,以便逻辑更加清 ...

  9. Pycharm中使用github

    转载博文,作为记录: 原文链接:  在Pycharm中使用GitHub - 刘江liujiangblog.com - 博客园 https://www.cnblogs.com/feixuelove100 ...

最新文章

  1. 软件测试面试必备的一些基础理论概念
  2. Java黑皮书课后题第2章:*2.23(驾驶费用)编写一个程序,提示用户输入驾驶的距离、每加仑多少英里的汽车燃油性能值,以及每加仑的价格,然后显示旅程的费用
  3. [推荐]经典炸弹人手机游戏[年兽防御战2]
  4. linux新建普通用户
  5. 作家百态之一:作家、批评家与酒
  6. 计算机网络——CSMA/CD最小帧长相关题目
  7. 华为P50系列即将登场:曝线下门店已开始准备样机、物料
  8. python自动化开发-[第十四天]-javascript(续)
  9. python做excel自动化-用python进行办公自动化都需要学习什么知识呢?
  10. 【转】NPOI自定义单元格背景颜色
  11. JavaScript—模块化(26)
  12. 类文件结构和字节码指令
  13. 阿里聚合直播盒子APP源码™ AlijuheCMS Build Demo 20190206
  14. Mac——snip滚动截图
  15. AI将带我们去何方?(下-展望篇)
  16. 腾讯音乐2020年报:懒人听书收购完成,谢振宇、太盟投资减持
  17. python通过路径找文件_Python寻找路径和查找文件路径的示例
  18. 在html页面中展示pdf文件,实现在线阅读
  19. Java、JSP+BBS论坛系统的设计与实现
  20. Megaface测评

热门文章

  1. seo模拟点击软件_SEO快排
  2. 斑马ZT510打印设置
  3. apollo自动驾驶入门课-高精地图
  4. 【算法】布赖恩·克尼根算法——天才算法求二进制中1的个数
  5. AutoCAD 的托管程序集
  6. [文摘20071019]九九重阳节的来历 重阳节传说故事 重阳节的活动习俗 重阳节诗篇
  7. 【转】华为路由器、交换机设备模拟器
  8. M8 解决 无法用blt 半透明和AlphaBlt实现关键色的问题。
  9. cocos2d-x 改变精灵图片的2种方法
  10. Unity3D---精灵图片裁剪及简单UI搭建