python 全栈开发_Python虚拟机

python 全栈开发_Python虚拟机欢迎点击右上角 +关注,反正动动手指也不会怀孕,更重要是希望能在工作中帮助到您。为一系列的文章,从一

欢迎点击右上角 +关注,反正动动手指也不会怀孕,更重要是希望能在工作中帮助到您。

前言

[代码笔记]为一系列的文章,从一个python ,django 完整项目的环境和工具讲起,随时供自己备查,进阶全栈工程师的狂暴之路。

前四篇文章

全栈之路:linux必会命令速记

全栈之路:mysql必会技能和常见错误解决

全栈之路:360秒内掌握版本管理技能 GIT

全栈之路:在游戏中快速拉升你的git技能树

受到了非常多的用户欢迎,看过的人都已经高亮了部分全栈技能。

开始

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

(0)
上一篇 2023-04-02 20:30
下一篇 2023-04-01

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注