django 用了pycharm virtualenvv怎么部署

Python虚拟环境Virtualenv使用教程
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Python虚拟环境Virtualenv简明教程,本文整合了两篇关于Virtualenv的使用教程,相信大家有通过本文一定可以学会如何使用Virtualenv,需要的朋友可以参考下
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
1. 在没有权限的情况下安装新套件
2. 不同应用可以使用不同的套件版本
3. 套件升级不影响其他应用
sudo apt-get install python-virtualenv
virtualenv [虚拟环境名称]
如,创建**ENV**的虚拟环境
virtualenv ENV
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境
virtualenv --no-site-packages [虚拟环境名称]
启动虚拟环境
source ./bin/activate
注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
退出虚拟环境
deactivate
在虚拟环境安装Python套件
Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:
pip install [套件名称]
如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
export PIP_REQUIRE_VIRTUALENV=true
或者让在执行pip的时候让系统自动开启虚拟环境:
export PIP_RESPECT_VIRTUALENV=true
Virtualenvwrapper
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
1. 将所有虚拟环境整合在一个目录下
2. 管理(新增,删除,复制)虚拟环境
3. 切换虚拟环境
sudo easy_install virtualenvwrapper&
此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。
创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs
在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh
运行: source ~/.bashrc
此时virtualenvwrapper就可以使用了。
列出虚拟环境列表
也可以使用
lsvirtualenv
新建虚拟环境
mkvirtualenv [虚拟环境名称]
启动/切换虚拟环境
workon [虚拟环境名称]
删除虚拟环境
rmvirtualenv [虚拟环境名称]
离开虚拟环境
deactivate
------------------------------------------------------------------------------------------------------------------------------------------------------------
virtualenv通过创建独立Python开发环境的工具, 来解决依赖、版本以及间接权限
问题. 比如一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 导致不兼容使项目无法正在运行, 使用virtualenv可以解决这些问题.
virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库
1. 安装Virtualenv
使用pip安装Virtualenv, 使用过python的都应该知道pip包管理神器吧, 即使不知道, 网站也有大把的教程, 不过推荐查看官方
$ pip install virtualenv
//或者由于权限问题使用sudo临时提升权限
$ sudo pip install virtualenv
2. virtualenv基本使用
现在开始使用virtualenv管理python环境
➜& Test git:(master) ✗ virtualenv ENV& #创建一个名为ENV的目录, 并且安装了ENV/bin/python, 创建了lib,include,bin目录,安装了pip
New python executable in
Installing setuptools, pip...done.
➜& Test git:(master) ✗ cd ENV
➜& ENV git:(master) ✗ ll
drwxr-xr-x& 14 andrew_liu& staff& 476 12& 8 08:49 bin
drwxr-xr-x&& 3 andrew_liu& staff& 102 12& 8 08:49 include
drwxr-xr-x&& 3 andrew_liu& staff& 102 12& 8 08:49 lib
lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下
bin,bin/python是在当前环境是使用的python解释器
如果在命令行中运行virtualenv --system-site-packages ENV, 会继承/usr/lib/python2.7/site-packages下的所有库, 最新版本virtualenv把把访问全局site-packages作为默认行为
default behavior.
2.1. 激活virtualenv
#ENV目录下使用如下命令
➜& ENV git:(master) ✗ source ./bin/activate& #激活当前virtualenv
(ENV)➜& ENV git:(master) ✗ #注意终端发生了变化
#使用pip查看当前库
(ENV)➜& ENV git:(master) ✗ pip list
pip (1.5.6)
setuptools (3.6)
wsgiref (0.1.2) #发现在只有这三个
pip freeze& #显示所有依赖
pip freeze & requirement.txt& #生成requirement.txt文件
pip install -r requirement.txt& #根据requirement.txt生成相同的环境
2.2. 关闭virtualenv
使用下面命令
$ deactivate
2.3. 指定python版本
可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本
#创建python2.7虚拟环境
➜& Test git:(master) ✗ virtualenv -p /usr/bin/python2.7 ENV2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in ENV2.7/bin/python
Installing setuptools, pip...done.
#创建python3.4虚拟环境
➜& Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4
Running virtualenv with interpreter /usr/local/bin/python3.4
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in ENV3.4/bin/python3.4
Also creating executable in ENV3.4/bin/python
Installing setuptools, pip...done.
到此已经可以解决python版本冲突问题和python库不同版本的问题
3.1. 生成可打包环境
某些特殊需求下,可能没有网络, 我们期望直接打包一个ENV, 可以解压后直接使用, 这时候可以使用virtualenv -relocatable指令将ENV修改为可更改位置的ENV
#对当前已经创建的虚拟环境更改为可迁移
➜& ENV3.4 git:(master) ✗ virtualenv --relocatable ./
Making script ./bin/easy_install relative
Making script ./bin/easy_install-3.4 relative
Making script ./bin/pip relative
Making script ./bin/pip3 relative
Making script ./bin/pip3.4 relative
3.2. 获得帮助
$ virtualenv -h
当前的ENV都被修改为相对路径, 可以打包当前目录, 上传到其他位置使用
这并不能使虚拟环境跨平台使用
4. 参考链接
virtualenv官方文档&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Django新手需要注意的10个要点_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Django新手需要注意的10个要点
上传于||文档简介
&&D​j​a​n​g​o​新​手​需​要​注​意​的0​个​要​点
大小:7.73KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢如何创建部署WSGI类型的(Django, Tornado, Flask)Python应用
第一部分:安装必要工具。1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP对应Lua的luarocks)sudo apt-get install python-pip安装三个Python框架sudo pip install flasksudo pip install django==1.5.1sudo pip install tornado==3.1.12.安装Gunicorn,这是运行Python的WSGI HTTP服务。sudo pip install gunicorn3.Virtualenv, 安装这个是因为,在部署Django的时候,使用了不同的版本。sudo pip install virtualenv第二部分:创建部署应用。1.创建一个WSGI类型的Tornado应用。import tornado.webimport tornado.wsgiclass MainHandler(tornado.web.RequestHandler):&&& def get(self):&&&&&&& self.write("My source code in the MoPaas server by python Tornado!")&&&&&&&settings = {&&& "debug" : True,&&& "static_path": "static",}#####urls = [&&& (r"/", MainHandler),]app = tornado.wsgi.WSGIApplication(urls, **settings)启动这个服务:gunicorn -w 4 torapp:app -b 0.0.0.0:88882.创建一个Flask应用。from flask import Flaskapp = Flask(__name__)@app.route("/")def hello():&&& return "My source code in the MoPaas server by python Tornado!"if __name__ == "__main__":&&& app.run()启动这个服务:gunicorn -w 4 server:app -b 0.0.0.0:88883.创建Django应用。Django是一个比较大的WEB应用,创建各部署的过程,稍微复杂一些。创建工程&django-admin.py startproject hotdoc创建应用python manage.py startapp verp创建数据库表python manage.py syncdb启动工程gunicorn hotdoc.wsgi:application -b 0.0.0.0:8888需要在修改工程目录下的settings.py在INSTALLED_APPS中加入, &verup和gunicorn:INSTALLED_APPS = (&&& 'django.contrib.admin',&&& 'django.contrib.auth',&&& 'django.contrib.contenttypes',&&& 'django.contrib.sessions',&&& 'django.contrib.messages',&&& 'django.contrib.staticfiles',&&& 'verup',&&& 'gunicorn')以上,本地开发环境是没问题的。这些步骤也可以用virtualenv新创建一个虚拟环境完成,本地创建virtualenv可以目前在WEB IDE上没有测试通过,理论上说,如果coding的WEB IDE是基于Docker的,virtualevn也应该好用。mkdir ~/environments/virtualenv ~/environments/tutorial/cd&&~/environments/tutorial/binsource bin/activate目前的Paas平台上的Python服务就是WSGI形式的应用,比如SAE和Mopaas,不同的是,在SAE上有些现成的例子。Mopaas需要自己从头写,这三个例子在Mopaas生产环境下都运行测试通过。在coding.net的WEB IDE也可成功运行。作者:糖果PS:转载到其它平台请注明作者姓名及原文链接。
[美]Julie C. Meloni
[英]George Ornbo
[澳]Kevin Yank
[美]Shelley Powers
[美]Daniel Howard
京ICP备号-6 ·

我要回帖

更多关于 pyenv virtualenv 的文章

 

随机推荐