django学习之pythonbrew部署开发环境

简介:

选择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):



安装脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
(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的虚拟坏境并切换到这个虚拟环境下面

1
2
3
4
5
6
7
8
9
10
11
12
[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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(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多版本管理工具很多的,找一个适合自己的就行,多了反而会被其所左右~



本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1585432,如需转载请自行联系原作者

相关文章
|
7月前
|
前端开发 数据库 Docker
一款可以直接使用的招聘网站, react django开发招聘网站,docker 部署
一款可以直接使用的招聘网站, react django开发招聘网站,docker 部署
64 0
|
7月前
|
XML 应用服务中间件 Linux
在一个centos服务器上同时部署tomcat,django,flask
在一个centos服务器上同时部署tomcat,django,flask
88 0
|
29天前
|
编解码 前端开发 JavaScript
技术经验分享:Django学习日记
技术经验分享:Django学习日记
|
1月前
|
关系型数据库 MySQL 开发工具
Django项目部署(命令函部署)
Django项目部署(命令函部署)
|
29天前
|
运维 Serverless 测试技术
函数计算产品使用问题之如何部署Django服务
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
测试技术 数据安全/隐私保护 Docker
Docker部署开源项目Django-CMS企业内容管理系统
【5月更文挑战第20天】Docker部署开源项目Django-CMS企业内容管理系统
70 1
|
2月前
|
Python
Django 学习教程-介绍与安装
本章介绍了Django是什么,以及为什么使用Django和安装Django
52 1
Django 学习教程-介绍与安装
|
2月前
|
调度 Apache 数据库
Django 学习教程-第一个 Django 应用
本章主要讲述了如何创建一个Django项目,以一个投票案例程序介绍了Django的请求和响应流程。
63 1
|
2月前
|
安全 数据库 Docker
百度搜索:蓝易云【Django进行docker服务器部署。】
需要注意的是,部署前请确保在开发环境中进行了充分的测试,并且在生产环境中采取了适当的安全措施,如使用安全的数据库连接、配置正确的访问权限等。
65 4
|
2月前
|
安全 JavaScript 搜索推荐
【实测】记一次用windows11家庭中文版部署django+vue项目的踩坑之旅
【实测】记一次用windows11家庭中文版部署django+vue项目的踩坑之旅