• 每天进步一点点!

文章分类

推荐网站

常用手册

windows下安装scrapy【原创】

安装pip

C:Python27\Lib\site-packageses\easy_install.py pip

用pip安装scrapy

pip install scrapy

报错:Microsoft Visual C++ 9.0 is required  (Unable to find vcvarsall.bat)

下载Microsoft Visual C++ Compiler for Python 2.7

https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

 

再次使用pip安装

pip install scrapy

报错:******Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2

set STATICBUILD=true && pip install lxml

再次使用pip安装

pip install scrapy

至此我的scrapy安装成功了

查看scrapy版本

scrapy version

类别:Python | 浏览(82) | 评论(0) | 阅读全文>>

yum升级CentOS6.5的python版本【原创】

 

最近在研究scrapy,需要用到python2.7,但是CentOS6.5的python版本是2.6,现在需要升级为2.7。

 

  1. 安装IUS Community源,这个源的python版本比较新,版本是2.7的。
rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
  1. 安装新版本的python
yum -y install python27 python27-devel python27-pip python27-setuptools

 

  1. Centos默认还是使用python2.6.*,需要用python2.7的文件覆盖python文件。
mv /usr/bin/python /usr/bin/python26
cp /usr/bin/python2.7 /usr/bin/python
mv /usr/bin/pip /usr/bin/pip26
cp /usr/bin/pip2.7 /usr/bin/pip

 

  1. 测试python的版本
python --version

输出:

Python 2.7.13

 

  1. 这时如果用yum安装软件包会报错,这是由于yum没有兼容python2.7,需要将/usr/bin/yum文件的 #!/usr/bin/python 修改为 #!/usr/bin/python26。
vi /usr/bin/yum

修改#!/usr/bin/python#!/usr/bin/python26

 

到此,python的版本升级工作已完成。

类别:Python | 浏览(104) | 评论(0) | 阅读全文>>

Python OS模块常用函数【转载】

1.重命名:os.rename(old, new)

2.删除:os.remove(file)

3.列出目录下的文件 :os.listdir(path)

4.获取当前工作目录:os.getcwd()

5.改变工作目录:os.chdir(newdir)

6.创建多级目录:os.makedirs(r"c:\python \test")

7.创建单个目录:os.mkdir("test")

8.删除多个目录:os.removedirs(r"c:\python") #删除所给路径最后一个目录下所有空目录。

9.删除单个目录:os.rmdir("test")

10.获取文件属性:os.stat(file)

11.修改文件权限与时间戳:os.chmod(file)

12.执行操作系统命令:os.system("dir")

13.启动新进程:os.exec(), os.execvp()

14.在后台执行程序:os.spawnv()

15.终止当前进程:os.exit(), os._exit()

16.分离文件名:os.path.split(r"c:\python\hello.py") --> ("c:\\python", "hello.py")

17.分离扩展名:os.path.splitext(r"c:\python\hello.py") --> ("c:\\python\\hello", ".py")

18.获取路径名:os.path.dirname(r"c:\python\hello.py") --> "c:\\python"

19.获取文件名:os.path.basename(r"r:\python\hello.py") --> "hello.py"

20.判断文件或目录是否存在:os.path.exists(r"c:\python\hello.py") --> True

21.判断是否是绝对路径:os.path.isabs(r".\python\") --> False

类别:Python | 浏览(65) | 评论(0) | 阅读全文>>

Python之os模块的进程管理介绍【转载】

    有两种方式来实现并发性,一种方式是让每个“任务"或“进程”在单独的内在空间中工作,每个都有自已的工作内存区域。不过,虽然进程可在单独的内存空间中执行,但除非这些进程在单独的处理器上执行,否则,实际并不是“同时”运行的。是由操作系统把处理器的时间片分配给一个进程,用完时间片后就需退出处理器等待另一个时间片的到来。另一种方式是在在程序中指定多个“执行线程”,让它们在相同的内存空间中工作。这称为“多线程处理”。线程比进程更有效,因为操作系统不必为每个线程创建单独的内存空间。

 

    新建进程用os.fork函数。但它只在POSIX系统上可用,在windows版的python中,os模块没有定义os.fork函数。相反,windows程序员用多线程编程技术来完成并发任务。

 

    os.fork函数创建进程的过程是这样的。程序每次执行时,操作系统都会创建一个新进程来运行程序指令。进程还可调用os.fork,要求操作系统新建一个进程。父进程是调用os.fork函数的进程。父进程所创建的进程叫子进程。每个进程都有一个不重复的进程ID号。或称pid,它对进程进行标识。子进程与父进程完全相同,子进程从父进程继承了多个值的拷贝,如全局变量和环境变量。两个进程的唯一区别是fork的返回值。子进程接收返回值0,而父进程接收子进程的pid作为返回值。一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。 对于程序,只要判断fork的返回值,就知道自己是处于父进程还是子进程中。

类别:Python | 浏览(66) | 评论(0) | 阅读全文>>

python中apply函数的使用【原创】

 

Python 允许你实时地创建函数参数列表. 只要把所有的参数放入一个元组中,然后通过内建的 apply函数调用函数.

 

#!/usr/bin/python

def test(a, b) :
    print a, b

apply(test, ('hello', 'world'))
apply(test, (1, 2 + 3)) 

r =  apply(lambda x, y : x + y, (1, 2)) 
print r

apply(test, (), {'a' : 'avalue', 'b' : 'bvalue'})

#apply(test, {'a' : 'avalue', 'b' : 'bvalue'})
#apply(test, {'name' : 'fisher', 'sex' : 'm'})

 

被注释掉的两个不正确,参数必须是元祖,哪怕是空元祖,而且键值必须与函数的参数名称一致。如上例中,字典的键名称必须与test的参数名称一致。

类别:Python | 浏览(86) | 评论(0) | 阅读全文>>