• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

python虚拟环境

Python admin 2年前 (2016-11-23) 526次浏览 0个评论 扫描二维码

python freeze

python 应用在开发中会使用各种各样的包,通常我们会用 venv 来对各应用项目依赖的 python 解释器版本及其包进行隔离。

应用中 import 的各种包如何“固定”住呢? pip 提供方法 freeze,将依赖的包名及版本导出到 txt 文件中,日后其他人引入项目时,可以通过 pip 提供的方法直接导入,简单来说:

pip freeze > requirements.txt

pip install -r  requirements.txt

跟 java 的 maven 仓库导入差不多, 更轻量环保。

virtual env

java 应用的使用中,我们都会指定项目的 jdk 路径。大多数情况,一般可能每个开发机器上都会有 1-3 个版本的 JDK, 如 jdk6, jdk7, jdk8,通常这样就够了。 然后会在系统 PATH 变量中指定一下 JAVA_HOME 路径。

java 应用的外部第三方包的依赖由 maven 设定,并在 build 时带入应用的目录作为依赖。

python 的控制方式略有不同,由于 python 本身自带了 pip 这个包管理工具。而且由于 python 是动态化的脚本语言,可能会有好几组不同的脚本分布在不同的目录组织,由于开发周期的原因,各个目录的脚本依赖的 python 解释器,包可能会不同,一个在 python2 跑的好好的脚本用 python3 的解释器一般都会出错。

我们需要一种把各组脚本运行环境隔离的方式,就是用 virtual env 解决。

具体方式就是在 python 项目的根目录中:

|—myPythonProject
      |———codePackage

运行:

virtualenv -p python3 env-p 代表创建一个 python3 的虚拟环境

env 代表该虚拟环境的目录叫 env

运行后的目录结构为:

|—myPythonProject
         |———codePackage
         |———env
             |——bin
             |——lib
             |——include

然后我们需要激活这个虚拟环境:

source env/bin/activate

激活后环境提示符变为:

(env) ➜ knife git:(master) ✗

表示此时该环境已经是这个项目所需的虚拟 python3 环境了,此时 pip install 所有的 package 都会被安装在 env/lib/python3.5/site-packages 目录下了,不会受到其他 python 项目安装的 package 包影响。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明python 虚拟环境
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!