python – 如何从bash脚本中停用virtualenv

前端之家收集整理的这篇文章主要介绍了python – 如何从bash脚本中停用virtualenv前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 shell脚本的新手,但我想制作一个bash脚本,用于使用virtualenv激活/停用虚拟环境.
然后我想像Ubuntu中的服务一样使用这个脚本将其复制到/etc/init.d文件夹中.

在我的脚本中,我有一个这样的变量:
VENV = /选择/ odoo / odoo_server / venv_oddo /箱

此变量表示虚拟环境中的bin路径.

在脚本中,我可以使用以下语句激活虚拟环境:
. ${} VENV /激活

这是可能的,因为activate是虚拟环境中bin目录内的文件.

但我不知道在我的脚本中使用的语句来停用我的虚拟环境.
我不能这样做:. ${} VENV /关闭

问题是不存在名为deactivate的文件,但是取消激活是虚拟环境中bin / activate文件中的一个函数.

解决方法

制作这样有用的服务很难.
. ${VENV}/activate # note the dot

要么

source ${VENV}/activate

source激活脚本,即运行其内容,就像它们是您获取它们的shell或脚本的一部分一样. virtualenvironment的激活is designed for this usage.相反,只是正常执行脚本

${VENV}/activate # note: NO dot and NO 'source' command

将在子shell中运行其内容,并且不会产生任何有用的效果.

但是,您的服务脚本已经在自己的子shell中运行.因此,除了作为服务启动过程的一部分运行的任何python命令外,它不会产生任何影响.

从好的方面来说,你甚至不必关心去激活环境,除非你想在服务启动过程中运行更多的python东西,但是在你的virtualenv之外.

猜你在找的Python相关文章