gpt4 book ai didi

python - 执行bash脚本时如何进入Python virtualenv?

转载 作者:太空狗 更新时间:2023-10-30 00:48:13 27 4
gpt4 key购买 nike

如果要在 bash 脚本中定义要使用的 python 版本,那就是

export PYTHON = "/path/python/python-3.5.1/bin/python"

但是对于 Python virtualenv,可以在命令行中执行这些命令

cd /path/pathto/virtualenv
source activate
cd another_directory

如何在 bash 脚本中“输入”Python virtualenv?这里的标准方法是什么?

最佳答案

这里我们必须区分两种情况:

  1. 您想在 bash 脚本中使用/调用 python(或基于 python 的工具),但是 python 或那些工具应该从 virtualenv 中获取并在 virtualenv 中运行
  2. 你想要一个脚本,除其他外,让你调用它的 shell 进入 virtualenv,这样你就可以在 virtualenv 中交互调用 python(或基于 python 的工具)

案例 1:在脚本中使用 virtualenv

How does one "enter" a Python virtualenv in a bash script?

就像在交互式 bash 命令行上一样:

source /path/to/the/virtual_env/bin/activate

What is the standard approach here?

标准方法是在 bash 脚本中输入 virtualenv。相反,通过完整路径调用 python 和/或要使用的基于 python 的命令。为了使这更容易并减少重复,您可以使用别名和变量。

案例 2:通过调用脚本在交互式 bash session 中激活 virtualenv

已经有这样的脚本了。它叫做 activate,它位于 virtualenv 的 bin 目录中。您必须 source 它而不是像普通命令那样调用它。只有这样,它才会在同一个 session 中而不是在子 shell 中运行,因此只有这样它才能对 session 进行修改,而不会由于子 shell 在脚本末尾终止而丢失。

就这样吧:

source /path/to/the/virtual_env/bin/activate

在您的交互式 shell session 中。

但是如果您想要做的不仅仅是activate 脚本呢?你可以把

source /path/to/the/virtual_env/bin/activate

进入shell脚本。 但是,由于上面提到的原因,当你正常调用你的脚本时,它不会有太大的影响。相反,source 您的脚本以在交互式 session 中使用它。

因此:

my_activate.sh 的内容

#!/bin/bash

# Do something
# ...

# then
source /path/to/the/virtual_env/bin/activate

# Do more stuff
# ...

在你的互动环节

source my_activate.sh

关于python - 执行bash脚本时如何进入Python virtualenv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com