python有个优越的地方就是它可以使用大量的第三方包,那么问题来了,如何安装第三方包呢?接下来介绍几种在不同场景下python装包的方法。

1. 初级

  1.1 使用pip工具,具体的就是先是激活环境,然后用install命令安装:

pip install packagename

  1.2 但有时候因为网络问题,并无法安装成功,因为pip默认的官网源在国外。

这时候我们可以使用国内的pip源。pip国内的一些镜像:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学(推荐) https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
  对于临时使用可以这样做:在pip install的后面加上-i参数并指定pip源,

pip install packagename -i https://pypi.tuna.tsinghua.edu.cn/simple

  1.3 如何批量安装包

pip install -r requirements.txt  -i 国内镜像源url
2. 中级

  如果你安装过某些用c语言编写的python包,会发现上一步的做法并不能安装成功,命令窗口弹出诸如下面的报错。

fatal error: Python.h: No such file or directory

  那为什么装不上呢?因为这个包它是用c/c++写的不是用纯python写的。python的第三方包粗略分为两类:纯python编写的软件包;c/c++语言编写的软件包。针对第二类情况,你需要确保系统上有相应的c/c++编译器及python开发者工具才能装包成功。
  linux各个发行版,要先确保gcc、g++已经安装,然后再安装python开发者工具,以redhat/centos为例:

yum install gcc gcc-c++
yum install python-devel
# 或安装对应python版本的开发者工具
yum install python3-devel
yum install python36-devel

Debian/Ubuntu dev工具名字稍有不同,但思路一样

apt-get install python-dev

  windows则需要安装vc++ for python x.x(即python对应的版本号),或者使用MinGw进行编译,参考阅读:https://stackoverflow.com/questions/29909330/microsoft-visual-c-compiler-for-python-3-4

3. 高级

需求一:
  想象在某个极其恶劣的环境,老板给你提出了一个很不人道的需求:小王,申请的服务器下来了,去把代码部署下吧于是在某个风雨交加的晚上,你开始连接至生产服务器,手动部署代码,想着10分钟后就可以下楼撸串了,心里还有点小激动呢。然而登上服务器才发现:生产服务器无法访问外网公司搭建的内网pip源压根就不能用或者太久没更新压根就没你要的包这时候真是叫天天不应,叫地地不灵。这种情况多见于国内的中、大型企业,有严格的网段划分和权限控制,但某些方面又做的不够好,比如源的管理问题。但活还是要干的,怎么办?
  方法一:先将各个所需的三方包下载至本地,然后上传至服务器,挨个pip install或批量安装。
  方法二:直接将三方包打包至项目代码中,简单粗暴,缺点是增加了项目代码体积。

需求二:
  在某个风和日丽的早晨,领导说:小王啊,我们有个脚本需要部署到其他运维的服务器当agent用。然后你经过调查发现脚本里面要用到一个三方包,但对方的服务器可能装过也可能没装过,于是你在脚本运行初始阶段设置了一个逻辑:

if xxx_package is exist:import xxxstart run code
else:pip install xxx_packageimport xxxstart run code

  然后你傻乎乎的调用了python的系统命令来执行包的安装操作,诸如os.system/os.popen/subprocess.Popen,发现并没有什么卵用,包确实执行安装了,但是代码初次运行的环境还是检测不到该包的存在?
  经过一番分析发现,安装发生在脚本启动之后,上述安装方法并不会将新安装的包同步至当前的运行过程中,因为python脚本是在启动之初就将import的包导入当前内存中的,也就是说我们新安装的并没有被热更新过来,归根结底是因为动态装包的姿势不对,下面给出动态装包的代码示例,重点在于install函数部分。

import pip
def install(package):if hasattr(pip, 'main'):pip.main(['install', package])else:pip._internal.main(['install', package])# Example
if __name__ == '__main__':try:import xxxprint('Yeah, the package is here, ready go')# todo run main codeexcept ImportError:print('oh no, it seems like you must install this package then you can use it')install('xxx')# todo run main code

python如何安装第三方包相关推荐

  1. python离线安装第三方包

    目录 第一种:通过pip离线安装 第二种:迁移虚拟环境 因为安全原因,有些服务器是不允许访问外网的,所以我们没办法通过pip做在线安装,那么这种情况只能采用离线的方式. 第一种:通过pip离线安装 思 ...

  2. python pip安装第三方包速度慢,这篇博客给你安排清楚了

    文章目录 ⛳️ 实战场景 ⛳️ pip 国内高速源 首推清华源 其它源 永久配置源 ⛳️ 实战场景 作为 Python 的初学者,经常要用到第三方模块的安排,常规情况下,直接使用下述命令,然后就等待去 ...

  3. python3.7安装包多大_python3.7 pip 安装第三方包

    python pip安装第三方包很简单[pip install package_name],安装完成后在[C:\Users\dcw\AppData\Local\Programs\Python\Pyth ...

  4. 安装第三方包查看python版本/第三方包版本

    安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...

  5. python怎么安装第三方库-vs2017怎么安装python第三方包

    vs2017有独立的python环境:所以想在vs2017开发python并使用第三方包,需要在vs2017中操作,完成第三方包的安装. 一,查看vs2017有哪些版本的python,当前使用的是哪个 ...

  6. python 安装第三方包

    通过anaconda 安装包不用介绍啦吧 这里介绍anaconda不能安装的 cmd python 环境布置 cmd中部署python环境 方法一.我的电脑->属性->高级->环境变 ...

  7. windows环境 安装python的虚拟环境,安装第三方包的总结

    一 创建虚拟环境 C:\Users\Administrator>cd D:\00\pystudy C:\Users\Administrator>d: D:\00\pystudy>py ...

  8. python安装第三方扩展包_【Python】pip - 安装第三方包的神器

    使用Python,肯定希望使用大量成熟的第三方包,从而快速用到自己的项目. 还在一个个寻找,手动下载吗? pip就是这样一个神器,自动搜索.下载和安装第三方包: 1,首先请安装pip自己,下载地址(也 ...

  9. python安装第三方包遇到的一些问题

    安装numpy遇到的一些问题 升级pip遇到的问题 报错: ERROR: Could not install packages due to an EnvironmentError: [WinErro ...

最新文章

  1. C# DES 加密 解密
  2. php无限极分类实例,PHP实例:PHP无限极分类
  3. redis 亿级查询速度_亿级流量系统架构之如何保证百亿流量下的数据一致性(上)...
  4. 简单的html渲染模板引擎
  5. 手动制作linux live,Linux下Live USB如何制作
  6. 使用PLSQL客户端登录ORACLE时报ORA-12502和ORA-12545错误的解决方案
  7. QT中动态库和静态库使用
  8. 数据库的事务级别介绍与操作
  9. 网页浏览器 市面上存在的网页浏览器
  10. 天网防火墙引起的蓝屏
  11. 麦当劳中国首个IT战略研发中心在南京启用;大食代积极布局中国西南市场 | 美通企业日报...
  12. geek软件是干什么的_geektool--一款很geek的工具
  13. 在CAD软件中如何批量打印黑白CAD图纸
  14. vs2013编译ffmpeg之四十二 zvbi
  15. UNIX的spctl命令
  16. unity中3dUI或者模型始终面向摄像机,跟随摄像机视角旋转丨视角跟随丨固定视角
  17. 【180627】VC++坦克大决战源码(音效+地图)
  18. 关于可拓学-新兴的应用学科
  19. 基于Mininet,搭建简单的sFlow测试环境
  20. python pop3_python通过pop3方式登录邮箱(qq,新浪,网易)

热门文章

  1. ARMv8/GICv3中断路由
  2. GICv3软件overview手册之GICv3基本功能(4)
  3. Pointofix ,截屏神器,好用到飞的软件
  4. 什么样的需求评审会是高效的?
  5. 汇总:web前端优化网页加载速度
  6. steps()的学习
  7. 区块链公链开发 区块链一条公链开发费用
  8. php小偷替换代码,收藏的一个php小偷的核心程序
  9. 美国旅游带孩子怎么申请签证?
  10. Thread与ThreadPool的内存之战