我是 shell 脚本的新手,但我想制作一个 bash 脚本来使用 virtualenv 激活/停用虚拟环境。 然后我想像 Ubuntu 中的服务一样使用这个脚本,将它复制到/etc/init.d 文件夹中。
在我的脚本中,我有一个这样的变量:
VENV=/opt/odoo/odoo_server/venv_oddo/bin
此变量表示我的虚拟环境中的 bin 路径。
在脚本中,我可以使用以下语句激活虚拟环境:
。 ${VENV}/激活
这是可能的,因为 activate 是虚拟环境中 bin 目录中的一个文件。
但我不知道在我的脚本中使用什么语句来停用我的虚拟环境。
我不能这样做:。 ${VENV}/停用
问题是不存在名为 deactivate 的文件,但 deactivated 是虚拟环境中 bin/activate 文件中的一个函数。
最佳答案
只是停用
。只要您使用的是 bash,它就可以在脚本和命令行中运行。
编辑:在大多数情况下,最好在脚本和服务中拼写完整的 Python 路径。它是无状态的,更便携,几乎可以在任何地方使用。所以不要做
. $VENV/bin/activate
/path/to/my/script.py --parameters
通常最好做
$VENV/bin/python /path/to/my/script --parameters
相信我,它会为你节省调试时间)
关于python - 如何从 bash 脚本停用 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545624/