Python (简体中文)
根据Wikipedia 页面: Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
Contents
安装
Python 3
Python 3 是语言的最新版本,而且不兼容 Python 2。语言. 语法基本上差不多,但是很多细节,尤其是一些内置对象,像字典和字符串,它们的工作方式已经改变了,一些不推荐使用的特性最终被移除了。同样,标准库也进行了整理。所有差别的列表,请访问 Python2orPython3 和 Dive into Python 3 的相关 章节。
要获得 Python 3,请从官方软件仓库中安装 软件包 python 。
要从源代码编译测试版,请访问 Python 下载。AUR 中同样包含 PKGBUILDS 。如果要安装 RC 版,请注意二进制文件默认安装到 /usr/local/bin/python3.x
.
Python 2
要获得 Python 2,请从官方软件仓库中安装 软件包 python2 。
Python 2 可以和 Python 3 同时运行,需要指定成python2
才会运行此版本。
默认的/usr/bin/python
是链接到 python 3 的,所以所有要求使用 python 2 的软件包应该用 /usr/bin/python2
替换 /usr/bin/python
.
用文本编辑器打开程序或脚本,将第一行:
#!/usr/bin/env python
或
#!/usr/bin/python
中的 python
替换为 python2
。
另一种强制使用 python2 而不修改脚本的方法是明确地使用 python2 调用它,即
python2 myScript.py
最后,你可能无法控制脚本调用哪一个,但还有一种方法。它仅在脚本使用 #!/usr/bin/env python
时有效,在用 #!/usr/bin/python
时无效。这种手法依赖于 env
在 PATH 变量中搜索第一个对应的条目。
首先创建一个目录。
$ mkdir ~/bin
然后添加一个名为 'python' 的链接指向 python2 以及一个名为 'python-config' 的链接指向 python2-config 。
$ ln -s /usr/bin/python2 ~/bin/python $ ln -s /usr/bin/python2-config ~/bin/python-config
最后把新的目录添加到你的 PATH 变量的 最前面。
$ export PATH=~/bin:$PATH
注意到这个修改不是永久的,仅在当前终端会话中有效。
要检查 env
使用的是哪个 python 解释器,使用以下命令:
$ which python
另一个解决这个问题的方法是通过 Python/Virtualenv (简体中文) 来伪造一个脚本的运行环境。
旧版本
AUR中有之前发布的 Python 版本,运行旧程序或测试程序的版本兼容性时可以使用:
- python15AUR: Python 1.5.2
- python16AUR[broken link: package not found]: Python 1.6.1
- python25AUR: Python 2.5.6
- python26AUR: Python 2.6.8
- python30AUR: Python 3.0.1
- python32AUR: Python 3.2.5
- python33AUR: Python 3.3.5
2014年7月,Python 上游仅支持 Python 2.7, 3.2, 3.3, 和 3.4 的安全修复,老版本有安全隐患,不建议使用。AUR 中还有老版本使用的模块和库,可以通过带版本的 python 搜索。例如 "python26" 关键字可以搜索支持 2.6 的模块。
部件绑定
有如下部件工具的绑定:
- TkInter — Tk 绑定
- pyQt — Qt 绑定
- http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4 python2-pyqt5 python-pyqt4 python-pyqt5
- pySide — Qt bindings
- pyGTK — GTK+ 绑定
- PyGObject — GTK+ 2/3 绑定通过 GObject Introspection
- https://wiki.gnome.org/PyGObject/ || python2-gobject2 python2-gobject python-gobject2 python-gobject
- wxPython — wxWidgets 绑定
要和 Python 一同使用,需要先安装相应的组件。
技巧
IPython
IPython 是改善了的 Python 命令行工具,可以从官方软件仓库安装 ipython 和 ipython2。
如果要使用 IPython 笔记本,可以安装 IPython3 使用的 jupyter 和 IPython2 使用的 ipython2-notebook,运行
$ jupyter notebook
可以自动启动浏览器和 IPython 内核,可以在创建笔记本是选择 Python 版本。
bpython 是 Python 的 ncurses 界面,通过 bpython 和 bpython2 安装.
virtualenv
python-virtualenv 是 Ian Bicking 编写的 Python 工具,可以为 Python 建立独立环境,可以安装软件包而不影响其它 virtualenv 环境或系统 Python 软件包,可以修改一个软件使用的 Python 版本。详情请参考 Python/Virtualenv (简体中文).
在 Python Shell 中实现自动补全功能
把下面的内容复制到 Python Shell 中
/usr/bin/python
import rlcompleter import readline readline.parse_and_bind("tab: complete")
问题解决
正确设置编译脚本中的 Python 版本
许多项目的编译脚本认为 python
是 Python 2,如果这样编译会导致错误 - 例如 print 'foo'
是错误语法。幸运的是,很多编译脚本会使用 $PATH
中的python
而不是写死 #!/usr/bin/python
,而且 Python 脚本都位于项目树中。所以,可以不修改脚本就解决此问题,只需创建/usr/local/bin/python
:
/usr/local/bin/python
#!/bin/bash script=$(readlink -f -- "$1") case "$script" in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*) exec python2 "$@" ;; esac exec python3 "$@"
其中 /path/to/project1/*|/path/to/project2/*|/path/to/project3*
是用|
分隔的项目匹配列表。
给脚本执行权限:
# chmod +x /usr/local/bin/python
完成后,指定的项目就会以 Python 2 运行脚本了。
参阅
- Learning Python, 4th edition
- Dive Into Python, Dive Into Python3
- A Byte of Python
- Learn Python The Hard Way
- Learn Python
- Crash into Python (assumes familiarity with other programming languages)
- Beginning Game Development with Python and Pygame
- Think Python
- Pythonspot