在服务器上部署Python程序时,往往需要先安装很多需要的模块包。如果一个一个安装就会出现忘记的情况。或者新增加某个新的模块时,也可能会忘记安装。

这里先讲一下怎么通过Python程序自动安装。

以下是一个简单的代码样例:

import sys, os#module_list = sys.modules.keys()use_module_list = ["pandas", "numpy", "pymysql","PooledDB"]for module in use_module_list:    if module not in module_list:        os.system("pip install {}".format(module))

代码解释:

  • 代码第3行:这一行不用修改,直接使用。作用是确定当前系统中已安装过的模块名。

  • 代码第4行:这一行的list里列举了要安装的所有模块名。

  • 代码第5行:开始循环list里的每一个模块名。

  • 代码第6行:循环后先进行判断,如果list里的模块未被安装,则继续执行下一行代码。

  • 代码第7行:使用“pip install 模块名”命令语句进行安装。

根据以上代码逻辑,只要每次维护好这个use_module_list就可以了。因为有循环和判断语句,所以也不用担心重复安装。

目前只是个简单的代码逻辑,如果要写个框架级的代码,那建议可以把list列表单独存放在一个文件里(例如叫“requirements.txt”),让Python脚本从这个requirements.txt文件里读取list列表,然后进行安装,后续只要维护好这个requirements.txt文件即可。

requirements.txt文件里的大致内容如下:

## This file is autogenerated by pip-compile# To update, run:##    pip-compile requirements.in#aggdraw==1.3.11           # via psd-toolsamqp==2.6.1               # via kombuasana==0.6.7              # via -r requirements.inasn1crypto==1.4.0         # via cryptographyattrs==20.2.0             # via psd-toolsbilliard==3.6.3.0         # via celerybleach==3.1.5             # via -r requirements.incairocffi==1.1.0          # via cairosvgcairosvg==2.0.3           # via -r requirements.incelery==4.3.0             # via -r requirements.incertifi==2020.6.20        # via requestscffi==1.14.2              # via cairocffi, cryptographychardet==3.0.4            # via requestscryptography==2.3.1       # via -r requirements.in, oauthlibcssselect==1.1.0          # via cairosvg, premailercssutils==1.0.2           # via premailerdiff-match-patch==20121119  # via -r requirements.indjango-ipware==1.1.6      # via -r requirements.indjango-jinja==2.3.1       # via -r requirements.indjango-pglocks==1.0.2     # via -r requirements.indjango-picklefield==0.3.2  # via -r requirements.indjango-sampledatahelper==0.4.1  # via -r requirements.indjango-sites==0.10        # via -r requirements.indjango-sr==0.0.4          # via -r requirements.indjango==2.2.16            # via -r requirements.in, django-jinja, django-sampledatahelper, django-sites, django-sr, easy-thumbnails# The following packages are considered to be unsafe in a requirements file:# setuptools

文件中还可以定义好每个模块的版本号,避免直接安装最新版。

python cv2模块安装_Python运行脚本前,自动安装需要的模块包相关推荐

  1. python需要的环境_python运行环境是什么

    1.准备好安装包 1)上python官网下载python运行环境(https://www.python.org/downloads/),目前比较稳定的是python-3.5.2 2)上pycharm官 ...

  2. appium自动化脚本之自动安装apk包到手机

    Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...

  3. 练习——shell脚本+kickstart自动安装虚拟机

    目录 一.实验环境 二.配置http 三.配置dhcp服务 四.配置kickstart文件 五.安装虚拟机 六.脚本自动安装 一.实验环境 1)添加一块硬盘 2)将sdb硬盘分区成一整块sbd1并挂载 ...

  4. 电脑控制手机,教你通过脚本实现自动安装、卸载软件

    电脑可以控制手机吗?可以批量控制多台手机吗?当然可以!不仅可以批量控制还可以用脚本方式自动安装.卸载手机上的应用程序.想用脚本的方式自动安装.卸载手机上的应用程序怎么办?很简单,用 Total Con ...

  5. Python Error: “ImportError: No module named six”,用自动安装解决依赖问题

    Python Error: "ImportError: No module named six",用自动安装解决依赖问题 参考文章: (1)Python Error: " ...

  6. linux自动安装光盘,Linux(centos6.4)自动安装光盘制作

    一.为什么要制作Linux自动安装光盘 1.机房的服务器少则几十台,多则上百台,几千台,安装的时候,这么多的服务器不可能一台一台的安装,这时候就需要自动安装光盘的协助. 2.如果机房的某台服务器需要格 ...

  7. python 批量下载依赖_python通过txt文件批量安装依赖包的实现步骤

    python通过txt文件批量安装依赖包的实现步骤 如果要用某个开源框架,需要安装多个依赖包可以如下操作: 如依赖文件形式如下(可以不要版本号): txt文件名为requirements.txt,内容 ...

  8. python的pypi安装_python pip及安装包安装

    python 微信聊天 D:\untitled\hello.py 入口 web禁止登陆.. 安装命令: 手动安装: D:\python\setuptools-41.2.0>python setu ...

  9. python x y 下载_Python(x,y)的下载安装

    1.下载 访问该地址,选择需要的版本,点击下载.我安装的版本是2.7.2.3. 2.安装 双击下好的应用程序,接下来选择full,全部安装,等待安装完成就行了.安装中途360可能会弹出"有程 ...

最新文章

  1. j2me程序发布到手机
  2. 为自增(++)自减(--)运算符正名
  3. PHP新增与修改的区分
  4. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具
  5. 在C++中反射调用.NET(二)
  6. (转)Java随机数
  7. SV processses
  8. linux命令 screen的简单使用
  9. 解决vue项目首页加载过慢的情况
  10. NMOS管和PMOS管开关控制电路原理及应用
  11. Pagehelper获取total错误解决方案
  12. 火狐老是跳出提示“Firefox正在安装组件,以便播放此页面上......”
  13. python 之hellow
  14. 制作一个私有的docker habor仓库
  15. 微信公众号、内嵌H5字体受微信字体大小影响问题的解决方案
  16. OpenCV python 图片镜像
  17. 【路径规划】基于遗传算法求解多中心VRP问题matlab源码
  18. Ubuntu网络配置(NAT模式)
  19. 扫地机器人朋友圈文案_装修建材行业如何写一条牛逼的朋友圈文案?
  20. ZCMU1411:喜闻乐见的a+b

热门文章

  1. C#正则表达式获取组名,按照组名输出匹配内容
  2. 小希的迷宫(并查集)
  3. RHEL 6上KVM的安装配置及使用-将物理接口桥接到桥接器
  4. 秒杀(PHP,Redis,Lua)
  5. 有趣而又被忽略的Unity技巧
  6. CentOS7搭建LNMP--编译安装
  7. 搭建本地,AWS和Azure之间的IPSec 连接
  8. 《PHP、MySQL和Apache入门经典(第5版)》一2.11 实践练习
  9. StorSimple 简介
  10. 单文档程序创建的时候,标题栏的无标题怎么可以去掉,并且改成自己想要的字符...