2018-01-17 17:19:17

vim打造python ide,只看这一篇就够

前言

由于日常用macbook开发,也不用鼠标,工作内容是全python环境,用pycharm一天下来手酸的很,刚好同事提到了说之前有个家伙用vim看linux内核,才猛然想起自己大学时候也玩过这玩意,后面就不了了之了。

想了一下发现vim还挺适合我现在的工作模式,简直一拍即合,花了几天业余时间看了些教程和必要的快捷键,磕磕碰碰的把环境搭起来了,然后在公司以龟速的工作效率适应了两三天之后pycharm已经被我放角落里了。一天下来除了看资料也用不到触控板,怎一个爽字了得。

网上的绝大部分资料都不能开箱即用,不是太老就是不适合python,要不就是只有零零散散的,这篇文章的宗旨就是看完这篇配置就能完全搭起来一个自己日常使用的的python开发ide,而不是一个装逼货。当然个人用户习惯不一样,你可以根据自己的情况来配置。

本篇只是教你怎么配置(理论上debian系可以直接跟着命令敲),而不是教你怎么使用,如果有需要使用教程的可以email给我,我尽快写一个使用教程(如果你是一个使用vim的人,估计也不需要使用教程,前段时间垃圾留言太多了,也没空理它,索性把评论功能去掉了~)

先放个图吧~

Read More »
2017-12-18 19:59:26

tornado源码浅析2-TCP网络IO处理

看一个框架我喜欢先从网络方面分析,然后再来分析它是怎么达到并发/并行的效果的,所以这里先看看tornado的网络处理

为了清晰,这里就先从tornado官方的demo入手分析吧。在demos/tcpecho文件夹下面有三个文件,我们看其中的client.pyserver.py

Read More »
2017-12-17 20:36:03

tornado源码浅析1-大纲

tornado的源码其实算是比较少的了,可能是因为不像c系静态语言那样很多轮子要自己造吧。

由于公司使用的是tornado,而且业务量也不小,依据以前用skynet的经验来看,这种框架不知道实现机制的话是很危险的。 所以看看它的源码自然提上日程了,原本以为会有很多黑魔法,没想到啥黑魔法都没有,勉强算得上黑魔法的东西可能就是那个Configurable类了

本以为要花很长时间才能看懂,没想到只花了一天多一点就把机制弄的差不多了。这里先从总体上说说。

tornado的框架我把它分为两大块:

  1. IOStream,它提供数据支撑,比如网络数据的读取都在这里了
  2. IOLoop, 它配合python的生成器提供了真正的协程语义,并且它还处理epoll/kqueue/select

所以看它的源码也是从这两大块来看,这里先说先基础的东西。

Read More »
2017-12-10 09:45:28

python的property(描述器descriptor相关知识)

今天cookbook,发现里面的property看的有点懵,所以去了解了下它的实现,看了以后就感觉挺简单的,只是灵活性太高,有点绕而已

其实它使用了描述器来实现功能,所以知道什么是描述器就好办了。

Read More »
2017-10-26 09:47:03

python操作excel表格

昨天群里有个人找我让帮忙写个脚本处理下excel数据,虽然之前从来没操作过,但是还是答应了。需求很简单,稍微查下资料就搞定了。这里记录下

Read More »
2017-10-23 09:49:47

python安装pip正确姿势

我经常遇到需要安装pip的情况,一般来说都是先安装setuptools再安装pip,但是实际上不需要这么麻烦,直接安装pip就好了,甚至连setuptools都不需要安装。

这里以redhat系为例子

Read More »
2017-10-19 09:52:18

flask模板文件夹和文件都存在,为什么还是 jinja2.exceptions.TemplateNotFound

最近想从零开始用flask写一个小web应用,遇到一个贼郁闷的问题,就是初学者经常会遇到的jinja2.exceptions.TemplateNotFound

问题是我的模板文件夹和模板文件都存在,并且位置正确,为啥还是这样呢?

这里重点提下:templates存在,应用以包的形式存在并且templates文件夹放在和应用包的__init__.py的同级目录

Read More »
2017-10-18 10:41:03

git https push 免密码

最近公司用的git,每次推送都要输入密码,简直要崩溃,所以想有没有办法能直接存储git的密码,当然用ssh key是可以的,但是不想弄key那么麻烦,这里说下怎么在本地保存git的用户名和密码吧。

git-for-windows会默认保存用户的密码,windows下我估计可以参考它的做法(直接看对应的配置文件即可)。这里说linux下的方法

Read More »
2017-10-17 09:54:41

linux安装MySQLDb报错mysql_config not found

linux下(我这里是linux mint 18.2)用以下命令安装MySQLDb

pip install MySQL-python

报了个错:

sh: mysql_config: not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
Read More »