大家好,我是考100的代码小小顾,祝大家学习进步,加薪顺利呀。今天说一说python 全栈开发_Python虚拟机,希望您对编程的造诣更进一步.
欢迎点击右上角 +关注,反正动动手指也不会怀孕,更重要是希望能在工作中帮助到您。
前言
[代码笔记]为一系列的文章,从一个python ,django 完整项目的环境和工具讲起,随时供自己备查,进阶全栈工程师的狂暴之路。
前四篇文章
受到了非常多的用户欢迎,看过的人都已经高亮了部分全栈技能。
开始
python环境目前是有2.x和3.x两个主要的大版本, 具体到某个项目里,还有具体版本和相关依赖库的不同版本的区别,因此每新开一个项目,都最好是通过virtualenv 新建一个虚拟机环境来运行,避免和不同的项目和环境之间有改动后相互影响。
这里的所谓的虚拟机具体操作起来其实就是个文件夹,和windows上,mac上新建的基于操作系统的虚拟机不是一回事,非常快捷简单,秒秒钟就能建立一个。
安装
每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
首先,我们用pip安装virtualenv:
这里会遇到权限问题,加上sudo解决
3.x
$ sudo pip3 install virtualenv
2.x
$ sudo pip install virtualenv
在已安装virtualenv的情况下,可以直接运行 virtualenv ENV 。
该操作会创建 ENV/lib/pythonX.X/site-packages 目录 和 ENV/bin/python , 前者用来存放要安装的模块,后者就是隔离环境的Python解释器。 在virtualenv环境下使用此解释器(包括以 #!/path/to/ENV/bin/python 开头的脚本)时,使用的都是隔离环境下的模块。
该操作还在隔离环境下安装了 Setuptools 或 distribute 。要用Distribue取代setuptools的话,只要运行:
virtualenv test
New python executable in test/bin/python
Installing setuptools, pip…done.
cd test
ls
bin include lib local
通常会创建ENV/lib/和ENV/include/目录, 包含了新python virtualenv的支持库文件。安装包则位于ENV/lib/pythonX.X/site-packages/。
ENV/bin目录包含二进制文件。使用#! /path/to/ENV/bin/python会使用该virtualenv。
安装了pip和setuptools, 其他包可以很容易地安装到环境中,使用ENV/bin/pip可.
virtualenv的python和其他python完全隔离。
实践
假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:
第一步,创建目录:
Mac:~ tom$ mkdir myproject
Mac:~ tom$ cd myproject/
Mac:myproject tom$
第二步,创建一个独立的Python运行环境,命名为venv:
Mac:myproject tom$ virtualenv –no-site-packages venv
Using base prefix ‘/usr/local/…/Python.framework/Versions/3.4’
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel…done.
命令virtualenv就可以创建一个独立的Python运行环境,
参数–no-site-packages,表示安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:
Mac:myproject tom$ source venv/bin/activate
(venv)Mac:myproject tom$
注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。
下面正常安装各种第三方包,并运行python命令:
(venv)Mac:myproject tom$ pip install jinja2
…
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject tom$ python myapp.py
…
在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。
退出当前的venv环境,使用deactivate命令:
(venv)Mac:myproject tom$ deactivate
Mac:myproject tom$
此时就退回到了正常的环境,现在pip或python均是在系统Python环境下执行。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
参考手册
virtualenv命令
$ virtualenv [OPTIONS] DEST_DIR
选项:
–version
显示版本号并退出。
-h, –help
显示帮助信息。
-v, –verbose
显示更多信息。
-q, –quiet
显示更少信息。
-p PYTHON_EXE, –python=PYTHON_EXE
指定所用的python解释器,比如 –python=python2.5 。 默认系统路径中的python解释器。
–clear
清空非root用户安装,重头开始。
–no-site-packages
不推荐使用,仅为保留向后的兼容性
当前的默认行为是不访问全局的site-packages
–system-site-packages
virtual环境可以访问全局的site-packages。
–always-copy
拷贝文件而不是建立符号连接。
–unzip-setuptools
安装时解压
–no-setuptools
不安装setuptools
–no-pip
不安装pip
–extra-search-dir=SEARCH_DIRS
setuptools/pip查找包的目录。可以添加一个或多个。
–prompt=PROMPT
替换提示符前缀。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4219.html