您的位置:首页 > 编程语言 > Python开发

django学习之pythonbrew部署开发环境

2014-12-02 14:06 621 查看
关于pythonbrew的介绍:https://github.com/utahta/pythonbrew
中文文档:http://pythonbrew.readthedocs.org/en/latest/

选择pythonbrew的原因:

融合了virtualenv,创建隔离环境更方便快捷

具有pyenv的所拥有的所有功能(个人感觉更强悍)

使用示例

列出可安装的 python 版本:
pythonbrew list --know

安装某个版本的 python :
pythonbrew install 2.7.3

删除已安装的某版本的 python :
pythonbrew uninstall 2.7.3

列出已安装的 python 版本(当前使用的版本后会用星号标记):
pythonbrew list

使用某个版本的 python (仅当前终端窗口有效):
pythonbrew use 2.7.3

切换到某个版本的 python (一直有效):
pythonbrew switch 2.7.3

清理陈旧的源码目录和档案包:
pythonbrew cleanup

升级到pythonbrew到最新版本:
pythonbrew update

禁用pythonbrew(即切换回原始环境):
pythonbrew off

创建python隔离环境(借助virtualenv):

安装脚本:

(fuck)[root@php ~]# cat pythonbrew.sh
#!/bin/bash
#Function: create pythonbrew env
#Author: zhuima
#Date: 2014-11-06
#Version: 0.1
#
REVTAL=0
# import Functions
. /etc/rc.d/init.d/functions
# check network
. /etc/sysconfig/network
if [ $NETWORKING = 'no' ];then
exit $REVTAL
fi
# install epel yum source
function epel_install(){
if rpm --version &>/dev/null;then
rpm -ivh  http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm else
exit $REVTAL
print "please checking your yum configure!"
fi
}
# install base packages
function base_packages(){
if yum repolist &>/dev/null;then
yum install yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel patch -y
else
exit $REVTAL
print "please checking your yum configure!"
fi
}
# install pip
function pip_install(){
if yum repolist &>/dev/null;then
yum install python-pip -y
else
exit $REVTAL
print "please checking your yum configure!"
fi
}
# install pythonbrew
function pythonbrew_install(){
if pip -V &>/dev/null;then
pip install pythonbrew
pip install virtualenv
else
exit $REVTAL
print "please checking your pip configure!"
fi
}
# config pythonbrew env
function pythonbrew_env(){
echo '[[ -s "$HOME/.pythonbrew/etc/bashrc" ]] && source "$HOME/.pythonbrew/etc/bashrc"' >>~/.bashrc
. /usr/bin/pythonbrew_install && source ~/.bashrc
}
# install python 2.7.6
function python_install(){
if $HOME/.pythonbrew/bin/pythonbrew --version &>/dev/null;then
$HOME/.pythonbrew/bin/pythonbrew install 2.7.6
else
exit $REVTAL
print "please checking your pyenv configure"
fi
}
# install ipdb、ipython
function install_ipython(){
if pip --version &>/dev/null;then
pip install ipdb
pip install ipython
else
yum install pip -y
pip install ansible
pip install ipython
fi

}
while :;do
cat << EOF
+-------------------------------------------+
|1、Install epel_install		    |
|2、Install base_packages	            |
|3、Install pip_install			    |
|4、Install pythonbrew_install 		    |
|5、Install pythonbrew_env		    |
|6、Install python_install		    |
|7、Install install_ipython		    |
|8、One-Click Setup			    |
|9、[Q|q|quit] to quit			    |
+-------------------------------------------+
EOF
read -p "select which one packages you want to install: " choice
case $choice in
1)
epel_install
;;
2)
base_packages
;;
3)
pip_install
;;
4)
pythonbrew_install
;;
5)
pythonbrew_env
;;
6)
python_install
;;
7)
install_ipython
;;
8)
epel_install
base_packages
pip_install
pythonbrew_install
pythonbrew_env
python_install
install_ipython
;;
Q|q|quit)
exit $REVTAL
;;
*)
echo "Usage: select one number(1|2|3|4|5|6|7|8|9)"
exit $REVTAL
;;
esac
done


简单演示:
创建一个名为flask的虚拟坏境并切换到这个虚拟环境下面

[root@php blog]# pythonbrew venv create flask
Creating `flask` environment into /root/.pythonbrew/venvs/Python-2.7.6
Already using interpreter /root/.pythonbrew/pythons/Python-2.7.6/bin/python
New python executable in /root/.pythonbrew/venvs/Python-2.7.6/flask/bin/python
Installing setuptools.............done.
Installing pip...............done.
[root@php blog]# pythonbrew venv use flask
# Using `flask` environment (found in /root/.pythonbrew/venvs/Python-2.7.6)
# To leave an environment, simply run `deactivate`
(flask)[root@php blog]#
(flask)[root@php blog]#
(flask)[root@php blog]#
在这个虚拟环境下安装版本为1.6的django

(flask)[root@php ~]# pip install django==1.6            # 安装版本为1.6的django
Downloading/unpacking django==1.6
Downloading Django-1.6.tar.gz (6.6MB): 6.6MB downloaded
Running setup.py egg_info for package django

warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
Running setup.py install for django
changing mode of build/scripts-2.7/django-admin.py from 644 to 755

warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
changing mode of /root/.pythonbrew/venvs/Python-2.7.6/flask/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
(flask)[root@php ~]# python -c "import django;print (django.get_version())"  # 在我们创建虚拟环境中打印django的版本
1.6
(flask)[root@php ~]# pythonbrew off
[root@php ~]# python -c "import django;print (django.get_version())"        # 打印django版本,这里提示没有这个模块
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named django
[root@php ~]#


撸完收工,也就是一个工具而已,不必在意这些细节,能用就好,python多版本管理工具很多的,找一个适合自己的就行,多了反而会被其所左右~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web django pythonbrew