Linux下Python创建和使用虚拟环境venv

2022-05-03 556点热度 0人点赞 0条评论

在服务器上运行python程序,可能会面领这个问题:多个python程序使用到了多个依赖包需要安装,而多个依赖包之间可能还存在着冲突的问题;如果后续不使用,已安装到系统的依赖包,可能就不需要了,卸载起来也比较麻烦。

如果使用了虚拟环境,以上问题就都解决了。不同的程序运行在不同的虚拟环境下,后续不使用,直接把不同虚拟环境的文件夹删除即可,非常方便。

安装准备虚拟环境

首先在linux系统下安装python3-pip,然后通过pip3安装virtualenv

#ubuntu下安装python3-pip
apt install python3-pip

#centos下安装python3-pip:
yum install python3-pip

#安装virtualenv
pip3 install virtualenv
pip3.8 install virtualenv

启用虚拟环境

假设python程序放在/opt/my-project下面

mkdir -p /opt/my-project
cd /opt/my-project

#生成虚拟环境
virtualenv venv
#看到my-project 有venv目录了
#参数 –no-site-packages,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境
#参数 –system-site-packages,虚拟环境会继承/usr/lib/python2.7/site-packages下的所有库。如果想依赖系统包目录,则可以使用此功能。如果您想要与全局系统隔离,请不要使用此参数。
#也可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本
#virtualenv -p /usr/bin/python2.7 venv

虚拟环境运行

#进入虚拟环境
source venv/bin/activate

#如果要安装依赖,就用你之前的方法安装,例如
#pip install <some-package>

#运行python程序,直接使用
python some.py

#退出当前的venv环境,使用deactivate命令
deactivate

另外如果在不进入虚拟环境,想要直接/opt/my-project下的py程序(例如在crontab下执行,依赖包等环境还是希望使用venv下的),可以这样做:

#如果要直接运行(不进入activate的情况下)可以这样:
/opt/my-project/venv/bin/python /opt/my-project/xxx.py >/dev/null

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论