Python高级编程(1)-准备工作

1.1 安装 18

这里的版本是2.7.9;https://www.python.org/downloads/release/python-279/

安装MinGW:针对WIndows平台开发的编译器,有gcc的各种功能,代替VC++;

http://www.mingw.org/

http://sourceforge.net/projects/mingw/files/Installer/

下载mingw-get-setup.exe;

安装到D:\Pythons\MinGW;

运行bin目录下的mingw-get.exe,勾选MinGW Compiler Suite下的全部包(没有全选功能);

菜单栏Installation->Apply

然后下载安装;

下载要花很长时间,时不时的因为连不上sourceforge而中断,失败的重新下载安装就可以了;安装好之后看看D:\Pythons\MinGW\bin,有老多工具了;

D:\Pythons\MinGW\bin添加到环境变量;验证,命令行执行gcc -v;Python编译器需要时会自动调用;

安装MSYS

MSYS能在Windows平台上提供一个Bourne Shell命令行执行环境;Bourne Shell是一款标准的Unix Shell,就是bash;

这个环境可以实现Linux或Mac OS X操作系统中常见的命令,如cp、rm等;

这里不用下载了,MinGW里边有;安装就可以了;

安装MinGW和MSYS之后,在windows就有了Linux的主要功能;

1.2 命令行 25

9:29

命令行输入python进入命令行,例子:小型计算,比如1+3;

按下回车,python立即解析程序并返回结果,这种特性继承自ABC语言;

ABC语言是一种教学语言,专门为非专业程序员设计的;

退出命令行:windows,Ctrl+Z(然后回车);Linux/Mac,Ctrl+D;

1.2.1 定制交互式命令行 26

9:36

通过启动文件配置,启动时会查找环境变量PYTHONSTARTUP,执行文件里的代码;

默认有个,在主目录下的.pythonstartup;功能:Tab自动补全,命令历史;

这是基于readline模块实现的(需要readline程序库);

查看python是否安装了readline模块;

命令行输入:help(),然后输入modules;

看提示还可以搜索;输入modules readline;

有个迷你版本的readline;

.pythonstartup,可以到https://pypi.python.org/pypi/pbp.scripts,下载;

"G:\pbp.scripts-0.2.5\pbp\scripts\pythonstartup.py"

pythonstartup.py改名为.pythonstartup即可;

但是重命名不了:

没事,保留原名试试,配置环境变量;

再进入命令行;

提示没有readline模块;

下载安装,http://newcenturycomputers.net/projects/readline.html

Readline-1.7.win32-py2.6.exe

安装readline;

查看python是32位还是64位的,命令行进入的时候可以看到;

前面的readline问题是安装了27版本的,注册表没有26版本;

加上;regedit,

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath

再安装:

安装完成;

Traceback (most recent call last):

File "D:\Python27\pythonstartup.py", line 2, in <module>

import readline

File "D:\Python27\lib\site-packages\readline.py", line 32, in <module>

import sys, os, msvcrt, _rlsetup

ImportError: DLL load failed: 找不到指定的模块。

网上查了,在Windows Python 2.7下,readline在windows下是无效的。

安装个pyreadline;

执行pip install pyreadline;

貌似安装模块可以用pip install;

验证;

删除环境变量,可能这个pyreadline根本不用配置文件;

tab自动补全不生效;

os.environ[‘HOME‘] keyerror:‘HOME‘,是因为windows环境没有HOME这个环境变量,对应是HOMEPATH;

执行:import os

os.environ.keys()可以查看;

那就改成HOMEPATH憋;

验证:

可以了!!!!!!!!!

尼玛

装个模块都这么坑爹啊!

总结:要用tab自动补全,27版本安装pip install pyreadline,pythonstartup.py内容:

http://git.oschina.net/yejq/PythonRel/blob/master/conf/pythonstartup-windows.py

1.2.2 iPython:增强型命令行 27

扩展的命令行:

· 动态对象反射;

· 在命令行中调用系统shell功能;

· 程序调优的直接支持;

· 调试工具;

安装:pip install ipython

1.3 安装setuptools 28

setuptools:包管理系统,发布Python应用程序,相当于Debian中的apt;

PyPI(Python Package Index):集中式仓库;

目前还不是标准库,还要安装;

1.3.1 使用EasyInstall安装

EasyInstall貌似已经安装了;

"D:\Python27\Scripts\easy_install.exe"

看看有没有安装setuptools;

貌似已经安装了;

1.3.3 将MinGW整合到distutils中 31

当需要编译程序时,可以在D:\Python27\Lib目录下;创建distutils.cfg;

内容:

[build]

compiler = mingw32

这样就能够把MinGW链接到Python中,每次Python需要编译包含C程序代码的包时,就会自动调用MinGW;

1.4 工作环境 31

这里我用pycharm-professional-4.0.4;

1.4.1 vim安装和配置 33

书中推荐用Vim;

启动MinGW Shell看安装了没有;

输入vim -version;

没有安装;

在MinGW Installation Manager,MSYS,MinGW Developer Toolkit里边可以找到;

安装它;老连接失败,重装了好多次才行;

还可以安装gvim;

这里懒得配了,伸手党万岁,用了网上某大神的绿色版本;

http://www.oschina.net/code/snippet_574132_13357

1.4.2 IDE

安装带PyDev插件的eclipse;

Marketplace;

安装它;

连不上;

试试Install Updates;

http://pydev.org/updates

转到了这个网址:https://dl.bintray.com/fabioz/pydev/all/

时间: 2024-08-08 14:42:38

Python高级编程(1)-准备工作的相关文章

Python高级编程pdf

下载地址:网盘下载 内容简介  · · · · · · <Python高级编程>通过大量的实例,介绍了Python语言的最佳实践和敏捷开发方法,并涉及整个软件生命周期的高级主题,诸如持续集成.版本控制系统.包的发行和分发.开发模式.文档编写等.<Python高级编程>首先介绍如何设置最优的开发环境,然后以Python敏捷开发方法为线索,阐述如何将已被验证的面向对象原则应用到设计中.这些内容为开发人员和项目管理人员提供了整个软件工程中的许多高级概念以及专家级的建议,其中有些内容的意义

python高级编程之(类级):子类内建类型

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #类级 #在2.2中,提出了类型(type0与类(class)统一(请访问:https://www.python.org/download/releases/2.2.3/descintro(可能已经不存在了))-这使内建类型的子类化成为可能,并且添加一个新内建类型object #用于所有内建类的公共祖先 #展示一个名为distinctdict类的代码,与平常的dic

python高级编程:有用的设计模式2

# -*- coding: utf-8 -*- __author__ = 'Administrator' #python高级编程:有用的设计模式 #代理 """ 代理对一个代价昂贵或者远程的资源提供了一个非直接访问的机制 在客户和主意之间,如图.它用来优化对高代价主题的访问,比如,在前一章中描述的memoize装饰器可以被认为是一个代理 ,它还可以用提供到一个主题智能访问,例如,大的视频文件可以封闭在代理中,以避免在用户仅仅请教其标题时就将文件载入到内存中 urllib2出给

python高级编程:有用的设计模式1

# -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#设计械是可复用的,某种程序上它对软件设计中觉问题提供的语言相关解决识方案,最近最流行的书籍:"""gamma.heim.johson和vlissides a.k.a"四人组(gof)"编写的elements of reusable object-oriented software(中文:<设计模式:可复用面向对

python高级编程之装饰器04

from __future__ import with_statement # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #with和contextlib #对于要确保即使发生一个错误时也能运行一些清理代码而言,try...finally语句很有用,对以下场景,如: """ 关闭一个文件, 释放一个锁 创建一个临时代码补丁 在特殊环境中运行受保护代码 ----------- with语句覆盖

python高级编程之迭代器与生成器

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #迭代器与生成器 #--------------------------------------- #迭代器基于2个方法 """ next:返回容器下一个项目 __iter__:返回迭代器本身 """ #通过内建函数和序列来创建 i=iter('abc') print i.next()#a print i.next(

python高级编程之列表解析

#列表解析 #编写0到10之间的偶数 #方法1 #结果:[0, 2, 4, 6, 8] num=range(10) num1=len(num) evens=[] i=0 while i<num1: if i%2==0: evens.append(i) i+=1 print evens #方法2 print [(i)for i in range(10)if i%2==0] #enumerate获取索引 #方法1 i=0 l=['a','b','c','d'] for  li in l: l[i]=

python高级编程:有用的设计模式3

# -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#访问者:有助于将算法从数据结构中分离出来"""它与观察者都有相似的目标,都能在不修改代码的情况下扩展指定的类功能,但是访问者更进一步,它将定义一个负责保存数据类,并将算法推进被称为访问者的其他类中.这种行为和mvc范围(请看:http://en.wikipedia.org/wiki/model-view-controller)相当类似,

python高级编程之超类02:super的缺陷

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #当使用多重继承层次结构时,再使用super的时候是非常危险的,主要是因为类的初始化,基类不在__init__中被隐式调用 #1滥用super和传统调用 #来自james knight(http://funm.net/super-harmful)示例中,类C使用__init__方法调用其基类,这样类B被调用2次 class A(object): def __init