Python设置细节

2020-08-25 10:28 更新

Windows下python环境变量配置

默认情况下,在 windows 下安装 python 之后,系统并不会自动添加相应的环境变量。此时不能在命令行直接使用 python 命令。

 

1. 首先需要在系统中注册 python 环境变量:假设 python 的安装路径为 c:\python2.6,则修改我的电脑->属性->高级->环境变量->系统变量中的 PATH 为:

(为了在命令行模式下运行 Python 命令,需要将 python.exe 所在的目录附加到 PATH 这个环境变量中。)

 

PATH=PATH;c:\python26

上述环境变量设置成功之后,就可以在命令行直接使用 python 命令。或执行 "python *.py" 运行 python 脚本了。

 

2. 此时,还是只能通过 "python *.py" 运行 python 脚本,若希望直接运行 *.py,只需再修改另一个环境变量 PATHEXT:

 

PATHEXT=PATHEXT;.PY;.PYM


3. 另外,在使用 python 的过程中,可能需要经常查看某个命令的帮助文档,如使用 help('print') 查看 print 命令的使用说明。默认安装的 python 无法查看帮助文档,尚需进行简单的配置:

在 python 安装目录下,找到 python25.chm,使用

 

hh -decompile .python26.chm

将其反编译出来,然后将其所在的目录加入到上面提到的 PATH 环境变量中即可。

 

4. 如何使 Python 解释器能直接 import 默认安装路径以外的第三方模块?

为了能 import 默认安装路径以外的第三方的模块(如自己写的模块),需要新建 PYTHONPATH 环境变量,值为这个模块所在的目录。



Python 设置系统默认编码


python 在安装时,默认的编码是 ascii,当程序中出现非 ascii 编码时,python 的处理常常会报这样的错
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)

python没办法处理非 ascii 编码的,此时需要自己设置将 python 的默认编码,一般设置为 utf8 的编码格式。

查询系统默认编码可以在解释器中输入以下命令:

Python代码
>>>sys.getdefaultencoding()  

设置默认编码时使用:

Python 代码
>>>sys.setdefaultencoding('utf8')  

可能会报

AttributeError: 'module' object has no attribute 'setdefaultencoding'

的错误,执行 reload(sys),在执行以上命令就可以顺利通过。

此时在执行 sys.getdefaultencoding() 就会发现编码已经被设置为 utf8 的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的 ascii 了,那么有没有办法一次性修改程序或系统的默认编码呢。

 

有 2 种方法设置 python 的默认编码:

一个解决的方案在程序中加入以下代码:

Python 代码
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')   

另一个方案是在 python 的 Lib\site-packages 文件夹下新建一个 sitecustomize.py,内容为:

Python 代码
# encoding=utf8  
import sys  
  
reload(sys)  
sys.setdefaultencoding('utf8')  

此时重启 python 解释器,执行 sys.getdefaultencoding(),发现编码已经被设置为 utf8 的了,多次重启之后,效果相同,这是因为系统在 python 启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

 

另外有一种解决方案是在程序中所有涉及到编码的地方,强制编码为 utf8,即添加代码 encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告,我曾经遇到这种情况,错误日志压缩之后尚有 70 多 K,全都是这一个问题,让人有很崩溃的感觉。



python的 urllib 里面设置超时信息


由于 python 的 urllib 里面没有直接设置超时的方法,因此需要设置 python 的 socket 超时信息
所以:
import socket

import urllib

socket.setdefaulttimeout(9.0)

try:

content =  urllib.urlopen(url).read()

exception socket.timeout:

pass


这样在 urllib 打开网页超时以后会抛出一个 socket.timeout 的异常,只需把这个异常 catch 出来处理就可以了。


Windows 7 为 python 设置全局路径

  1. 从“开始”菜单选择“电脑”
  2. 从上下文菜单选择“系统属性”
  3. 单击“高级系统设置 > 高级”选项卡
  4. 单击“环境变量”,然后在“系统变量”下找到 PATH 并单击。
  5. 在“编辑”窗口中,通过将类的位置添加到 PATH 的值来修改 PATH。如果没有项 PATH,可以选择添加新变量,然后添加 PATH 作为名称,添加 python(python.exe)安装位置作为值。例如安装在 D:\python2.7
  6. 再次打开“命令”提示窗口,然后运行 python。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号