第一次写博客,一边吃着旺仔冻痴一边学着python,爽~


我之理解pip

首先,python封装好了大量的函数,这些函数存在各种各样的库中。

那么怎么去向我们可爱的pycharm等软件导入这些库呢,两种方法:

第一种:利用pycharm提供的傻瓜式设置,直接安装库

步骤如下:

Files→settings

在project中选择project Interpreter 里面的右边加号即可在里面的搜索框进行查找你需要的库。

但是这种方法有时候会因为访问外网网络延迟过长,而导致系统误判失败(比较常见),所以这时候就显示出过硬的基础素质弥足珍贵。也就是第二种最原始的放法。

第二种:在python的使用路径下,进行pip安装

到了主题了,pip就是协助Python开发者进行包管理的助手,学会pip至关重要。

萌新的我最开始觉得傻瓜方式一也很好用,但是我有一次想使用GLPK_MI的线性规划时,在安装Numpy+mkl的时候,由于numpy+mkl这个库在所有国内镜像系统里都没有。(目前截止到今天为止还没有,无论是哪一个版本都没有,今天是2020年7月20日)所以想要装这个库。只能从官网上下载whl文件后手动pip安装。空费一天功夫。

其中操作部分可以看后文,注意路径的问题,一定要根据自己用的python3.7.0那个来用cmd打开(如果使用pycharm,就去找pycharm安装时使用的python3.7.0这个环境在哪里)。

pip基础操作

查看pip版本:

pip -V

升级pip :

pip install --upgrade pip

查看已安装第三方包列表:

pip list 

pip安装第三方包:

pip install ......(三种情况)
  • 直接安装:

    pip install 包名
    
  • 指定版本安装:
    pip install 包名==版本号
    
  • 通过.whl安装包安装:
    pip install .whl安装包名
    

      !!!!!!!!第三种划重点,经常用于直接pip安装出现异常时使用。.whl安装包需在安装前下载好,下面推荐一个常用的.whl包下载网址:加州大学欧文(尔湾)分校的网址https://www.lfd.uci.edu/~gohlke/pythonlibs/   #有些慢但是确实能用

升级包:

pip install -U 包名

查看安装包详细信息:

pip show 包名

卸载第三方包:

pip uninstall 包名

  

pip推荐使用国内的镜像

由于外网网速太慢,这里提供一个一劳永逸的换源下载的方法(linux未涉猎,可以期待一下更新)

windows: 
直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,(即创建记事本之后,更改名字及后缀为pip.ini即可)内容如下:

#我使用的是阿里云

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/ [install]
trusted-host=mirrors.aliyun.com

  其他常用镜像地址

  阿里云镜像源http://mirrors.aliyun.com/pypi/simple/

  豆瓣镜像源: http://pypi.douban.com/simple/

  清华大学镜像源https://pypi.tuna.tsinghua.edu.cn/simple/  (听说清华云最全)

最后举一个pycharm直接安装失败的栗子

2020年7月20日,灼热的太阳一如我灼热的心,线性规划无法使用GLPK_MI的求解方式,查看报错信息后,发现是缺少GLPK库,但GLPK库比较大,导致网络一直延迟过大,pip显示GLPK无法访问,即便国内的镜像也没能下载下来,报错仍未解决,erroe C1083的报错更是把我整懵了,他竟然显示我无法打开包括文件(一般为.h)。

这与司守奎老师讲座中出现的报错一致,司老师也未解决,感觉又是一个大坑,暂时探索无果,我决定寻找替代方案,便是最新的numpy+mkl库(目前截止到今天为止所有国内镜像系统里都没有,无论是哪一个版本都没有,今天是2020年7月20日)所以想要装这个库。只能从官网上下载,也就是直接执行。

重新组装用于求解最优解的cvxpy

  Python中cvxpy的安装方法为:

  1. 卸载原Pyhon中的Numpy
  2. 一定要按顺序来逐个安装
numpy+mkl, scipy,ecos, osqp, scs, cvxopt, cvxpy

而安装Numpy+mkl这种国内镜像系统里都没有的特殊情况,便用到了我们之前学的知识。

这个Numpy+mkl库是在使用cvxpy优化库的时候使用这个。不使用优化库的时候,可以直接pip install numpy

安装Numpy+mkl的whl文件,链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/

glpk_mi缺失的错误处理

     这个工具和numpy+mkl有关,如果没有安装这一个模块运行一些求解代码的时候就会出现这个错误,这便是遇见无法安装问题的一次解决流程。
 
 P.S. glpk_mi的优化精度最高,百度文库中有这几种优化的汇总文档,有兴趣可以看一看(matlab版)。
 
GLPK官方给的说明网站

官方网站:http://www.gnu.org/software/glpk/glpk.html

python之路第一节-pip的使用的更多相关文章

  1. Python之路第一课Day8--随堂笔记(socket 承接上节---网络编程)

    本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...

  2. Python之路第一课Day4--随堂笔记(迭代生成装饰器)

    上节回顾: 1.集合 a.关系测试 b.去重 2.文件操作及编码 3.函数 4.局部变量和全局变量 上节回顾 本节课内容: 1.迭代器生成器 2.装饰器 3.json pickle数据序列化 4.软件 ...

  3. Python之路第一课Day2--随堂笔记

    入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8")) p ...

  4. Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )

    本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@s ...

  5. Python之路第一课Day6--随堂笔记(面向对象 )

    本节内容: 1. 面向对象编程介绍 2. 为什么要用面向对象进行开发? 3. 面向对象的特性:封装.继承.多态 4. 类.方法   一.面向过程 VS 面向对象  1. 编程范式 编程是 程序 员 用 ...

  6. Python之路第一课Day5--随堂笔记(模块)

    本节课程大纲: 1.模块介绍 2.time &datetime模块 3.random 4.os 5.sys 6.shutil 7.json & picle 8.shelve 9.xml ...

  7. Python之路第一课Day11--随堂笔记(异步IO\数据库\队列\缓存之二)

    一.RabbitMQ队列 1.安装: a.官网: 安装 http://www.rabbitmq.com/install-standalone-mac.html b.安装python rabbitMQ ...

  8. Python之路第一课Day10--随堂笔记(异步IO\数据库\队列\缓存)

    本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...

  9. Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)

    本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...

随机推荐

  1. Redis做为缓存的几个问题

    缓存理流程: 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果. 1.缓存雪崩 解决方案3:如果缓存数据库是分布 ...

  2. 【Blazor】在ASP.NET Core中使用Blazor组件 - 创建一个音乐播放器

    前言 Blazor正式版的发布已经有一段时间了,.NET社区的各路高手也创建了一个又一个的Blazor组件库,其中就包括了我和其他小伙伴一起参与的AntDesign组件库,于上周终于发布了第一个版本0 ...

  3. 论TEMP临时变量与VAR静态变量

    TEMP临时变量:顾名思义,这种变量类型是临时的,没有固定的存放数据的内存空间.每次扫描结束后则清零,在下个扫描周期开始时,这个变量的值都是不确定的,一般为0.使用临时变量需要遵循一个原则:先赋值再使 ...

  4. Scala 基础(一):各平台安装

    一.win7环境安装1.安装jdk直接双击,安装到想要的环境目录2.修改环境变量2.1新建系统变量 JAVA_HOME 输入jdk安装目录 2.2 修改PATH修改PATH:%JAVA_HOME%\b ...

  5. Java实现导入导出Excel:POI和EasyExcel

    文章与CSDN同步,欢迎访问:https://blog.csdn.net/qq_40280582/article/details/107300081 代码地址:https://gitee.com/il ...

  6. web CSS3 实现3D动态翻牌效果

    使用纯CSS3 实现翻牌效果  需要注意要给子盒子使用绝对定位,这样两个盒子可以完全重合在一起,需要给父盒子一个 transform-style: preserve-3d;让子盒子翻转时保持3D效果, ...

  7. TIBCO Jasper Report 中显示图片的方式

    最近在做的项目中,需要输出很多报表类文档,于是选择用jasper来帮助完成. 使用jasper studio的版本是 :TIB_js-studiocomm_6.12.2_windows_x86_64. ...

  8. Mysql UDF提权方法

    0x01 UDF UDF(user defined function)用户自定义函数,是mysql的一个拓展接口.用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sq ...

  9. kafka零拷贝

    Kafka之所以那么快的另外一个原因就是零拷贝(zero-copy)技术.本文我们就来了解Kafka中使用的零拷贝技术为什么那么快. 传统的文件拷贝 传统的文件拷贝通常需要从用户态去转到核心态,经过r ...

  10. oracle创建Javasource实现数据库备份

    因客户需求,需要在业务系统中,菜单中的网页中的按钮中加入一个按钮,用于点击备份数据库 (环境:只配置了数据源连接oralce ,应用服务器和数据服务器不在一台机器,且数据库机器oracle操作系统账号 ...