python之路第一节-pip的使用
第一次写博客,一边吃着旺仔冻痴一边学着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的安装方法为:
- 卸载原Pyhon中的Numpy
- 一定要按顺序来逐个安装
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缺失的错误处理
官方网站:http://www.gnu.org/software/glpk/glpk.html
python之路第一节-pip的使用的更多相关文章
- Python之路第一课Day8--随堂笔记(socket 承接上节---网络编程)
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...
- Python之路第一课Day4--随堂笔记(迭代生成装饰器)
上节回顾: 1.集合 a.关系测试 b.去重 2.文件操作及编码 3.函数 4.局部变量和全局变量 上节回顾 本节课内容: 1.迭代器生成器 2.装饰器 3.json pickle数据序列化 4.软件 ...
- Python之路第一课Day2--随堂笔记
入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8")) p ...
- Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )
本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@s ...
- Python之路第一课Day6--随堂笔记(面向对象 )
本节内容: 1. 面向对象编程介绍 2. 为什么要用面向对象进行开发? 3. 面向对象的特性:封装.继承.多态 4. 类.方法 一.面向过程 VS 面向对象 1. 编程范式 编程是 程序 员 用 ...
- Python之路第一课Day5--随堂笔记(模块)
本节课程大纲: 1.模块介绍 2.time &datetime模块 3.random 4.os 5.sys 6.shutil 7.json & picle 8.shelve 9.xml ...
- Python之路第一课Day11--随堂笔记(异步IO\数据库\队列\缓存之二)
一.RabbitMQ队列 1.安装: a.官网: 安装 http://www.rabbitmq.com/install-standalone-mac.html b.安装python rabbitMQ ...
- Python之路第一课Day10--随堂笔记(异步IO\数据库\队列\缓存)
本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...
- Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)
本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...
随机推荐
- ExecutorsService 中的 submit和 execute的区别
闲来无事,写点代码练练手.于是就看了下ExecutorService常用的提交任务的方法: <T> Future<T> submit(Callable<T> tas ...
- day62 django入门(3)
目录 一.无名有名分组的反向解析 1 无名分组的反向解析 2 有名分组的反向解析 二.路由分发 三.名称空间(了解) 四.伪静态(了解) 五.虚拟环境(了解) 六.django版本区别 1 url的区 ...
- 攻防世界-Web-ics-05
根据题目提示直接进入设备维护中心 点击云平台设备维护中心发现page=index LFI漏洞的黑盒判断方法: 单纯的从URL判断的话,URL中path.dir.file.pag.page.archiv ...
- 09-Python异常
一.简介 在实际的工作过程中,我们会遇到各种问题,比如文件不存在,代码运行不符合某些特定逻辑等,程序在运行时,遇到这些问题便会发生异常.英文是Exception. a = float(input('请 ...
- git的工作区和暂存区
目录 备注: 知识点 工作区(Working Directory) 版本库(Repository) 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查 ...
- Linux常用命令归类总结
文件相关 创建文件 touch: touch README.md ">"重定向: echo 'study and share' > README.md vi & ...
- ajax原生js封装
不带注释的 function ajax(json) { json.type = json.type ? json.type : 'get'; json.async = json.async == fa ...
- CSS:有点难的面试题①
1 举例说明匿名块框和匿名行内框2 什么是标准文档流?3 inline-block遵循怎样的渲染规则?4 什么是BFC?如何触发BFC?5 什么是Line box?(最好画图说明) 6 <met ...
- 新款iPad Pro4的电池续航和充电速度对比
3月18日晚苹果官网上架了两款新iPad Pro,两款iPad Pro 2020外观大小分别为11英寸和12.9英寸,搭载苹果A12Z仿生芯片,起售价分别为6288元和7899元.那么两款iPad P ...
- springboot(七)JavaMail发送邮件
JavaMail简介: JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件 ...