之所以 写这篇文章的原因在于django环境的确轻松搭建,之前Ubuntu上安装了,的确很轻松,但是后期我才知道随便做个环境出来很容易到了后面很麻烦,污 染了系统里的python版本,导致系统python环境异常崩溃,系统重装的Ubuntu的亲们你们是有感触吧,所以好多人采用virtualenv 吧,但是期初用virtualenv的时候的确不需要系统的依赖包了,但是后来折腾来折腾去还是很麻烦,最后我不得已我又各种删,所以最后看到了一个哥们 的文章,我才觉得找到了自己自己想要的东西了

所以重 头再mac下已默认python 2.7.5为系统python系统版本,完全独立出来的虚拟环境,方便删除,挪动,更改环境中的各组件版本,也许我有轻微强迫症的人。不污染系统环境,不 依赖于系统的package,完全独立的python版本,独立的django版本,独立的django依赖包,所以马上从头开始

step1:安装pip

在python中可以使用easy_install和pip安装python拓展但推荐使用pip,在stackoverflow看到个帖子,阐明了理由

Don't use easy_install, unless you like stabbing yourself in the face. 
Use pip. Two reasons, there may be more: - pip provides an uninstall command - if an installation fails in the middle, pip will leave you in a clean state. pip简介 Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能。
Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。

Pip的安装可以通过源代码包,easy_install或者脚本。

因为easy_install: 
$ easy_install pip 也可以通过这样的方式安装
# sudo apt-get install python-pip python-dev build-essential 安装package
$ pip install Markdown 列出安装的packages
$ pip freeze 安装特定版本的package 通过使用==, >=, <=, >, <来指定一个版本号。
$ pip install 'Markdown<2.0' $ pip install 'Markdown>2.0,<2.0.3' 升级包 升级包到当前最新的版本,可以使用-U 或者 --upgrade
$ pip install -U Markdown 卸载包
$ pip uninstall Markdown 查询包
pip search "Markdown" 更多详情
pip help

step2:安装virtualenv

$ sudo pip install virtualenv 

使用方法: 
1、创建虚拟环境
$ virtualenv env1 //创建虚拟环境env1 默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境,可以用下面命令查看package安装位置
# python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
/usr/lib/python2.7/dist-packages //Ubuntu下的路径
/Library/Python/2.7/site-packages //mac下的路径 $ virtualenv env2 --no-site-package
\\这条命令安装完了之后site package就会安装到创建好的虚拟环境中,这样就实现了独立于系统之外,不污染系统了 2、启用虚拟环境
cd env1
source ./bin/activate
注意此时命令行会多一个(env1),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。 3、退出虚拟环境
deactivate 4、在虚拟环境中安装python module
pip install [套件名称] #Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行: 如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
export PIP_REQUIRE_VIRTUALENV=true 或者让在执行pip的时候让系统自动开启虚拟环境:
export PIP_RESPECT_VIRTUALENV=true

step3:安装virtualenvwrapper

Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: 
1. 将所有虚拟环境整合在一个目录下
2. 管理(新增,删除,复制)虚拟环境
3. 快速切换虚拟环境
4. tab补全虚拟环境名字
5. 每個操作都提供允许使用者自己定制的hooks
6. 可以编写比较容易分享的extension plugin Tab 補全虛擬環境的名字。 每個操作都提供允許使用者自訂的 hooks。 可撰寫容易分享的 extension plugin 系統。 -安装
$ sudo pip install virtualenvwrapper
\\此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行 -配置.bashrc alias python="python2.7"
#如果你的系统python安装的位置不是默认位置,请加上环境变量申明
PATH=${PATH}:/usr/local/share/python #virtualenvwrapper
export WORKON_HOME=$HOME/virtualenvs //虚拟环境存放位置自己指定
source /usr/local/bin/virtualenvwrapper.sh                //指定virtualenvwrapper的执行文件路径
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 //系统python2.7执行文件位置,根据自己环境而定
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' //启动时候指定参数,就是我们用的独立于系统的安装包
export PIP_VIRTUALENV_BASE=$WORKON_HOME //告知pip virtualenv的位置
export PIP_RESPECT_VIRTUALENV=true //执行pip的时候让系统自动开启虚拟环境 #如果是mac用户,由于 Terminal 在启动时加载的用户配置并非 .bashrc,而是 ~/.bash_profile,所在还需要在 ~/.bash_profile 加入
[ -r ~/.bashrc ] && source ~/.bashrc 使用方法
1、列出虚拟环境列表
workon

lsvirtualenv 2、新建虚拟环境
mkvirtualenv [虚拟环境名称] 3、启动\切换虚拟环境
workon [虚拟环境名称] 4、复制虚拟环境
$ cpvirtualenv ENVNAME TARGETENVNAME 5、删除虚拟环境
rmvirtualenv [虚拟环境名称] 6、离开虚拟环境
deactivate

step3:安装pythonbrew

对于日后想用不同的版本python进行代码测试的话自然少不了这个,接下来的内容中加上这部分

step4:安装辅助组件

#yolk是一个列出python安装包的工具 
$ pip install yolk
$ yolk -l

step5:安装django

#安装 
ms@mss:~$ workon test
(test)ms@mss:~$ pip install django #django安装的位置
python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
['/home/ms/.virtualenvs/test/local/lib/python2.7/site-packages/django'] \\这里就是我虚拟环境中

到此本地的开发 django环境也就安装完了,这样独立的开发环境,pythonbrew安装的python版本,不依赖于系统,完全独立,直接删除没有任何影响,或者 直接拷贝虚机环境修改里面的python版本和django版本就可以进行另外的测试了,和系统环境无关联,达到了我想要的结果,就不至于乱折腾系统了, 我直接乱折腾虚拟环境

Python+django部署(一)的更多相关文章

  1. [Python]Django部署问题

    给客户部署系统 Apache + mod_wsgi + django 打开浏览器妈的死活就是pending状态 运来mod_wsgi用的32位,操作系统64位(window server 2003 r ...

  2. 基于SAE的Python+Django部署

    本文主要参考:http://www.cnblogs.com/qtsharp/archive/2012/01/12/2320774.html,另外包括自己的实际操作. 一.申请SAE帐号以及创建应用ya ...

  3. 转一篇NGINX+UWSGI+PYTHON+DJANGO部署文档

    高远弄的,,专业,明晓..感谢哈哈. http://blog.csdn.net/tmpbook/article/details/42873667

  4. Python Django的生产部署方式

    本地化部署的Django有很大的局限性,无法用于生产环境,比如无法抗住多并发,无法长时间的运行,容易造成网页无响应的问题.所以如何将Django部署到真正的生产环境中,让其能够真正的像正常的网页一样工 ...

  5. python基础-requests模块、异常处理、Django部署、内置函数、网络编程

     网络编程 urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应. 校验返回值,进行接口测试: 编码:把一个Python对象编码转 ...

  6. 从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)

    <跟老齐学Python Django实战>作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助.作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获. 前 ...

  7. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  8. python Django教程 之 安装、基本命令、视图与网站

    python  Django教程  之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...

  9. Django 部署 uwsgi + nginx + supervisor

    Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...

随机推荐

  1. phpcms 源码分析七: 模板引擎实现

    这次是逆雪寒对模板引擎实现的分析: 1 /* 函数 template函数是在global.func.php 里面定义的. 在前面的phpcms 的首页 index.php 里就见到了. 用法: inc ...

  2. SVN源代码泄露

    1. 联想b2b站SVN源代码泄露 开启Firefox,输入:b2b.thinkworldshop.com.cn/.svn/entries Webserver返回如下信息:

  3. Android开发--UI之Bundle的使用

    Android开发–UI之Bundle的使用 最近,把之前学过的东西大体的整理了以下,并且想把学过的心得分享给大家.我自己做了一个小小的demo,以便说明具体的应用. 这里的两个界面是通过第一个界面输 ...

  4. mysql优化概析

    优化从几个方面来说: 表结构设计 适当索引(主键 普通 唯一 全文组合) mysql本身配置 硬件配置 SQL语句优化 存储过程 分表 分区 读写分离 清理垃圾数据

  5. 构建简单的socket连接池

    一开始,选用Vector<E>来存放连接.由于这个容器不是并发安全的,于是,每个方法都加一个synchronized来保持并发时的同步操作,并发效率很差,果断放弃.空余时间研究了下多线程的 ...

  6. C#三元运算符

    ?:表达式1?表达式2:表达式3如果1为真则执行2,为假执行3

  7. 闲话:你今天OO了吗?

    如果你的分析习惯是在调研技术的时候最先弄清楚有多少业务流程,先画出业务流程图,然后顺藤摸瓜,找出业务流程中每一步骤的参与部门或岗位,弄清楚在这一步参与者所做的事情和填写表单的结果,并关心用户是如何把这 ...

  8. zzzzw_在线考试系统②管理员篇章

    今天实现了管理的功能,谈谈遇到的问题!我先上图 图一   管理员的数据库 在action中访问Servlet API的非IoC方式之一:使用apache.struts2.ServletActionCo ...

  9. OLEDB读取EXCEL表格时,某些字段为空,怎么办?

    转载:http://blog.sina.com.cn/s/blog_53864cba01011cbn.html   前些日子,写了一个Excel导入数据库的共同Batch,突然有一天发现当我修改Exc ...

  10. (五)Hibernate 操作对象

    所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 中四种对象状态 临时状态(transient ...