pyenv 安装及常用命令
pyenv centos系统的安装以及常用的命令项目地址https://github.com/pyenv/pyenvgit安装安装python编译依赖环境centosdebian克隆pyenv的仓库也可以使用脚本安装curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash写入bash文件如果有~/.profile文件的话,尽量不要写到~/.bashrc文件中去,会导致ssh连接的时候死循环(
简单理解python异步编程与asyncio实现(四)
asyncioasyncio 简介asyncio是Python 3.4 试验性引入的异步I/O框架(PEP 3156),提供了基于协程做异步I/O编写单线程并发代码的基础设施。其核心组件有事件循环(Event Loop)、协程(Coroutine)、任务(Task)、未来对象(Future)以及其他一些扩充和辅助性质的模块。在引入asyncio的时候,还提供了一个装饰器@asyncio.coroutine用于装饰使用了yield from的函数,以标记其为协程。但并不强制使用这个装饰器。虽然发展到 Pyt
Python 测试覆盖率 coverage
Python下测试覆盖率用的比较多的是 coverage。coverage官方文档:https://coverage.readthedocs.io/安装方法1:pip安装方法2:下载安装包安装https://pypi.org/project/coverage/使用pytestunittestnosetest参数使用--source=.来指定当前路径命令coverage report -m 打印当前测试覆盖率结果。coverage html 在执行目录下生成一个 htmlcov 文件夹,可以打开该文件夹的
Python 元类
Python 元类今天在看 Django models 的源码时,看到了这么一个东西:当时看到这里的时候我挺疑惑的。为什么 ModelBase 去继承 type??为什么class可以继承type??type这玩意儿不是个函数吗?于是乎我上网查了查,这东西叫做元类。那么什么是元类呢,我开始了我的探索之旅。什么是元类在 Python 中,实例对象是由类来创建的,那么类又是什么东西来创建的?其实类是通过元类来创建的。在平时的编程中,元类基本上不会被用到。类?对象在大部分编程语言中,类的作用是来描述如何产生一个
简单理解python异步编程与asyncio实现(三)
协程与asyncio协程协程(Co-routine),即是协作式的例程它是非抢占式的多任务子例程的概括,可以允许有多个入口点在例程中确定的位置来控制程序的暂停与恢复执行。例程是什么?编程语言定义的可被调用的代码段,为了完成某个特定功能而封装在一起的一系列指令。一般的编程语言都用称为函数或方法的代码结构来体现。首先,要知道的是,无论是多进程,多线程还是协程,都是为了解决多任务同时进行的问题。而多任务系统实现的关键在于如何暂停当前任务,保存当前任务的上下文,选择下一个任务,恢复下一个任务的上下文 ,执行下一个
简单理解python异步编程与asyncio实现(二)
同步->异步I/O以一个爬虫为例,下载10篇网页,用几个例子来展示从同步->异步。同步阻塞方式以同步阻塞方式来写这个程序也是最容易想到的方式,即依次下载好10篇网页。这段代码的执行事件大概为4.5秒。(取多次平均值)上述代码中, blocking_way()这个函数的作用主要是建立连接,发送HTTP请求,然后从socket读取HTTP响应请求到并返回数据。sync_way()将blocking_way()执行了10次,也就是说,我们执行了10次访问下载 example.com由于网络情况和服务端的处理各不
简单理解python异步编程与asyncio实现(一)
异步编程在开始说明异步编程之前,首先先了解几个相关的概念。阻塞程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。常见的阻塞形式有:网络I/O阻塞、磁盘I/O阻塞、用户输入阻塞等。阻塞是无处不在的,包括CPU切换上下文时,所有的进程都无法真正干事情,它们也会被阻塞。(如果是多核CPU则正在执行上下文切换操作的核不可被利用。)简单的理解的话,阻塞就是 A调用B,A会被挂起,一直等待B的结果,什么都不能干 。非阻塞程序在等待某操作过程中,自
Python 无法print中文 print中文报错
当print中文时报错这是由于系统的默认编码为 ASCII 编码,无法print出UTF-8编码的中文如何解决?在需要print的文件中加入以下代码便可以无报错输出中文了类似问题写入文件时,发生类似报错。需要手动指定编码类型为 utf-8encoding=’utf-8′
centos 7 安装python3 并修改默认的python
centos 自带的python 是2.7.5 ,很多时候我们并不会使用这么低版本的python,这里提供一种比较便捷的python3安装方法注意,提供的方法为 yum安装,如果需要安装指定版本的python,请去python的官网下载并安装一、yum安装python3之后输入Y ,然后按回车确认注意:某些情况下yum提示Another app is currently holding the yum lock; waiting for it to exit…这种情况导致无法安装,可能是由于yum正在进行
Python解决pip安装时速度慢的问题
方法为替换Python的pip安装源为国内源国内源:新版ubuntu要求使用https源,要注意。清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/豆瓣:http