python定制_私人定制Python开发环境

本文介绍了如何在Ubuntu 12.04.3 LTS上安装和管理多个Python解释器,包括使用`pythoninstaller`脚本自动安装不同版本的Python,并通过`virtualenv`创建隔离的Python环境,以保持各个项目的Python环境清洁。详细步骤包括安装Python解释器、建立虚拟环境、创建符号链接以及使用`pip`管理第三方模块。
摘要由CSDN通过智能技术生成

私人定制Python开发环境

Python使用者都知道当前的Python解释器出现了三大分支并驾齐驱的势头。它们分别是Python 2.6.x (最新2.6.9),

Python 2.7.x(最新2.7.5)和Python 3.3.x(最新3.3.3)。而且Python3的最新最重要的分支 Python 3.4马上也发

布。面对如此多Python分支,Python爱好者们怎样选择一个自己合适的解释器呢,或者怎样让多个解释器共存,想用

那个就用那个呢?

Python爱好者们怎样选择一个自己合适的解释器呢?

这个很简单,根据自己项目的需求和对Python2或者Python3的熟悉程度以及所要用到的模块的情况。这个问题不是本

文的重点。

怎样让多个解释器共存,在多个解释器中自由选择?

这个问题可以分成两大部分:

1、安装各个版本的Python解释器

2、建立Python的虚拟运行环境(virtualenv,pip,setuptools)

如图所示:

A091422769-68132.png_small.png

下面将详细介绍怎样在Ubuntu 12.04.3 LTS上定制Python开发环境。这是我的Ubuntu:

lnxuser@ubuntu:~$lsb_release-a

No LSB modules are available.

Distributor ID:Ubuntu

Description:Ubuntu 12.04.3 LTS

Release:12.04

Codename:precise

众所周知,Ubuntu上的Python包一般都不会是最新的Python版本。而且Ubuntu上默认的Python安装会被系统很多

地方用到。如果我们直接用这个默认安装的Python,然后再装很多我们项目的需要的第三方模块,会让这个默认的

Python安装变得比较混乱。特别地,当因为某些需要,不同的项目需要用同一个模块的不同版本时,使用默认安装

的Python将使你陷入非常困扰的局面。怎么解决呢?用virtualenv定制项目自己的Python环境。

废话少说,我们先来安装自己的Python解释器。为了更方便的使用各个版本Python,我 写了一个pythoninstaller的

安装脚本,用于自动安装想要版本的Python解释器。可以从上获取。

克隆到本地后,像下面方式运行即可:

Usage:

./python_installer.sh

Forexample:

./python_installer.sh3.3.2

安装完毕后,就可以用python来调用python解释器了。例如:

lnxuser@ubuntu:~$ python3.3.3

Python 3.3.3(default,Dec 2 2013,14:17:09)

[GCC 4.6.3]on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

python被安装在了/opt/目录下,请看我的安装的各个版本:

lnxuser@ubuntu:~$ls-dl/opt/python*

drwxr-xr-x 6 root root 4096 Dec 2 14:13/opt/python2.6.9

drwxr-xr-x 6 root root 4096 Nov 4 14:35/opt/python2.7.5

drwxr-xr-x 6 root root 4096 Nov 13 20:22/opt/python2.7.6

drwxr-xr-x 6 root root 4096 Nov 7 10:33/opt/python3.3.2

drwxr-xr-x 6 root root 4096 Dec 2 14:18/opt/python3.3.3

lnxuser@ubuntu:~$ls-l/usr/local/bin/python*

lrwxrwxrwx 1 root root 30 Dec 2 14:13/usr/local/bin/python2.6.9-> /opt/python2.6.9/bin/python2.6

lrwxrwxrwx 1 root root 30 Nov 4 14:35/usr/local/bin/python2.7.5-> /opt/python2.7.5/bin/python2.7

lrwxrwxrwx 1 root root 30 Nov 13 20:22/usr/local/bin/python2.7.6-> /opt/python2.7.6/bin/python2.7

lrwxrwxrwx 1 root root 30 Nov 7 10:33/usr/local/bin/python3.3.2-> /opt/python3.3.2/bin/python3.3

lrwxrwxrwx 1 root root 30 Dec 2 14:18/usr/local/bin/python3.3.3-> /opt/python3.3.3/bin/python3.3

这样,你想要那个版本的python,直接调用它就可以了。

接下来,我们开始建立自己虚拟python环境,而不是直接用我们安装的,这样我们可以保持各个版本的python安装

都是非常clean的。上面的图已经告诉我们,我们需要用到三个工具,它们分别是virtualenv,pip和setuptools。对

于后面两个,我们完全不用管,只要我们用virtualenv建立python环境后,setuptools和pip会自动被安装。而对于

virtualenv,我们完全没有必要安装,只需要下载源码,然后就地创建python virtual env即可。非常方便。请看:

wget 外链网址已屏蔽

tar zxvf virtualenv-1.10.1.tar.gz

cd virtualenv-1.10.1

python3.3.3 virtualenv.py ~/pyVE/py3.3.3

# |||||||||||||||

# 这是我的python3.3.3虚拟环境的目录

下面的log出现,证明安装成功

Using base prefix '/opt/python3.3.3'

New python executable in /home/lnxuser/pyVE/py3.3.3/bin/python3.3.3

Also creating executable in /home/lnxuser/pyVE/py3.3.3/bin/python

Installing Setuptools..............................................................................................................................................................................................................................done.

Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.

此时,为了方便调用,我们再创建两个符号链接

$ sudo ln-s~/pyVE/py3.3.3/bin/python/usr/local/bin/pyve3.3.3# 注意,由于安装的python的解释器使用的是python3.3.3这个名字,所以虚拟环境的#解释器的名字不能再用python3.3.3,可以自己命名一个自己喜欢的名字即可。

$ sudo ln-s~/pyVE/py3.3.3/bin/pip/usr/local/bin/pip_pyve3.3.3 #

至此,python3.3.3的一个定制环境已经创建完毕。

lnxuser@ubuntu:~$pip_pyve3.3.3 list

pip(1.4.1)

setuptools(0.9.8)

可以看到pip和setuptools已经安装了,有了这两个工具,我们就可以随意的增减第三方包了。

例如:我们先升级一下setuptools

lnxuser@ubuntu:~$pip_pyve3.3.3 install setuptools--upgrade

Downloading/unpacking setuptoolsfromhttps://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#md5=13951be6711438073fbe50843e7f141f

Downloading setuptools-1.4.2.tar.gz(796kB):796kB downloaded

Running setup.py egg_infoforpackage setuptools

Installing collected packages:setuptools

Found existing installation:setuptools 0.9.8

Uninstalling setuptools:

Successfully uninstalled setuptools

Running setup.py installforsetuptools

Installing easy_install-3.3 script to/home/lnxuser/pyVE/py3.3.3/bin

Installing easy_install script to/home/lnxuser/pyVE/py3.3.3/bin

Successfully installed setuptools

Cleaning up...

作为一个例子,我们再安装mongodb的python模块

lnxuser@ubuntu:~$pip_pyve3.3.3 install pymongo

Downloading/unpacking pymongo

Downloading pymongo-2.6.3.tar.gz(324kB):324kB downloaded

Running setup.py egg_infoforpackage pymongo

Installing collected packages:pymongo

Running setup.py installforpymongo

.......

.......

我们再来看看刚刚升级和安装的模块

lnxuser@ubuntu:~$pip_pyve3.3.3 list

pip(1.4.1)

pymongo(2.6.3)

setuptools(1.4.2)

setuptools已经从0.9.8升级到了1.4.2。pymongo也安装成功了。

lnxuser@ubuntu:~$ pyve3.3.3

Python 3.3.3 (default, Dec 2 2013, 14:17:09)

[GCC 4.6.3] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import pymongo

>>> pymongo.version

'2.6.3'

所有的用户自己安装的第三方库都被放在了虚拟环境里。例如:

lnxuser@ubuntu:~$ ls -l pyVE/py3.3.3/lib/python3.3/site-packages/

total 144

drwxrwxr-x 3 lnxuser lnxuser 4096 Dec 2 21:13 bson

-rw-rw-r-- 1 lnxuser lnxuser 126 Dec 2 21:06 easy_install.py

drwxrwxr-x 3 lnxuser lnxuser 4096 Dec 2 21:13 gridfs

drwxrwxr-x 3 lnxuser lnxuser 4096 Dec 2 21:06 _markerlib

drwxrwxr-x 7 lnxuser lnxuser 4096 Dec 2 20:47 pip

drwxrwxr-x 2 lnxuser lnxuser 4096 Dec 2 20:47 pip-1.4.1-py3.3.egg-info

-rw-rw-r-- 1 lnxuser lnxuser 101430 Dec 2 21:06 pkg_resources.py

drwxrwxr-x 2 lnxuser lnxuser 4096 Dec 2 21:06 __pycache__

drwxrwxr-x 3 lnxuser lnxuser 4096 Dec 2 21:13 pymongo

drwxrwxr-x 2 lnxuser lnxuser 4096 Dec 2 21:13 pymongo-2.6.3-py3.3.egg-info

drwxrwxr-x 6 lnxuser lnxuser 4096 Dec 2 21:06 setuptools

drwxrwxr-x 2 lnxuser lnxuser 4096 Dec 2 21:06 setuptools-1.4.2-py3.3.egg-info

而原始的python安装是非常干净的,只有标准库

lnxuser@ubuntu:~$ ls -l /opt/python3.3.3/lib/python3.3/site-packages/

total 4

-rw-r--r-- 1 root root 119 Dec 2 14:18 README

根据上述的方法,我们可无限制的创建python虚拟环境。可以根据自己的项目情况来创建,各个python的

虚拟环境都是独立的,它们之间不会互相影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值