赞
踩
一般每个不同的项目都会依赖各自的库,有些库的版本不一样会引起冲突,为了解决这个问题,需要使用虚拟环境
,Python可以在每个项目目录下创建各自的虚拟环境
,项目所依赖的包就在当前目录环境下
,这样避免了库版本的冲突
,也方便相同操作系统间可以快速的拷贝项目运行。
创建目录,这里把venv命名为test101env
,因此目录名为test101env:
[root@robot-DOM-server test]# mkdir test101env
[root@robot-DOM-server test]# cd test101env/
[root@robot-DOM-server test101env]#
第二步,创建一个独立的Python运行环境:
[root@robot-DOM-server test101env]# python3 -m venv .
查看当前目录,可以发现有几个文件夹和一个pyvenv.cfg
文件:
ls
命令python3 -m venv <目录>
可以创建一个独立的Python运行环境
实际上是链接到Python系统目录的软链接
。继续进入bin目录
,Linux/Mac用source activate
,Windows用activate.bat
激活该venv环境:
source activate
命令提示符变了
,有个(test101env)前缀
,表示当前环境是一个名为test101env
的Python环境。正常安装各种第三方包,并运行python命令:
pip3 install jinja2
运行python命令
(test101env) [root@localhost bin]# python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import jinja2
>>> exit()
venv
环境下,用pip安装的包都被安装到test101env
这个环境下,具体目录是test101env/lib/python3.x /site-packages
,因此,系统Python环境不受任何影响。也就是说,test101env环境
是专门针对test101这个应用创建的。退出当前的test101env环境,使用deactivate
命令:
deactivate
venv是如何创建“独立”的Python运行环境的呢?
把系统Python链接或复制一份到venv的环境
,用命令source activate进入一个venv环境时
,venv会修改相关环境变量
,让命令python和pip均指向当前的venv环境
。如果不再使用某个venv,如何删除?
先确认该venv没有处于“激活”状态
,然后直接把整个目录test101env删掉就行
。小结
隔离的Python运行环境
,解决了不同应用间多版本的冲突问题
。1. 将本地开发环境的依赖项目生成清单文件
在项目所在目录执行命令:pip freeze > requirements.txt
将当前项目使用的python解释器中的依赖包保存到requirements.txt
文件中
2.将Python项目上传到服务器
3.为项目创建虚拟环境
python -m venv env_name
创建虚拟环境,
source 环境名称/bin/activate
,虚拟环境激活之后,对应的环境名会出现在命令行deactivate
4.安装对应项目的依赖包
虚拟环境启动之后,在虚拟环境中安装我们对应项目的依赖了,命令:
pip3 install -r requirements.txt
安装项目的依赖包(requirements.txt
为项目收集的依赖包地址)
如果对应的Linux环境中未配置国内镜像源,导致依赖包安装缓慢,可以通过命令
pip install -i 国内镜像源地址 -r requirements.txt
安装项目依赖包
pip install 第三方库名
进行安装5.运行主程序文件
python xx.py 运行程序文件
,但是该命令无法让主程序文件处于后台运行状态,一旦关闭会话页面,程序就会停止
nohup python xx.py
,该命令可以让程序文件处于后台运行 状态,并且能够将运行日志收集到nohup.out文件中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。