欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

python冷冻及虚拟环境

程序员文章站 2022-05-17 14:31:34
...

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包影响。

如果使用pyCharm等IDE,需要在项目创建时指定项目对应的project interpreter,如下图:

python冷冻及虚拟环境

相关标签: python