python - 如何在 Bash 脚本中激活 virtualenv

标签 python bash virtualenv

如何创建 Bash 脚本来激活 Python virtualenv?

我的目录结构如下:

.env
    bin
        activate
        ...other virtualenv files...
src
    shell.sh
    ...my code...

我可以通过以下方式激活我的 virtualenv:

user@localhost:src$ . ../.env/bin/activate
(.env)user@localhost:src$

但是,在 Bash 脚本中执行相同的操作不会:

user@localhost:src$ cat shell.sh
#!/bin/bash
. ../.env/bin/activate
user@localhost:src$ ./shell.sh
user@localhost:src$ 

我做错了什么?

最佳答案

当您获取资源时,您将激活脚本加载到您的事件 shell 中。

当您在脚本中执行此操作时,您将其加载到该 shell 中,该 shell 会在您的脚本完成时退出并返回到您原来的、未激活的 shell。

您最好的选择是在函数中执行此操作

activate () {
  . ../.env/bin/activate
}

或别名

alias activate=". ../.env/bin/activate"

希望这会有所帮助。

关于python - 如何在 Bash 脚本中激活 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122137/

相关文章:

python - Ubuntu 18.04 flask 无法到达端口 5000 上的 api 端点

python - 我的用户配置文件中的Ubuntu 16.04默认python环境是Anaconda Python2,无法运行guake "anaconda2/bin/python2: No module named guake"

bash - 在适用于 Linux 的 Windows 子系统 (WSL) 中查找事件串行端口

python - 使用 wsgi 和 virtualenv 时 django 错误 : could not import settings

python - 即使对于服务器上的单个基于 django 的应用程序,是否也建议使用 virtualenv?

python - 根据 Python 中的模式拆分字符串

Python:使用编译/评估时出现段错误

Java 抛出 Process exitValue : 127 when running expect script

linux - Shell脚本创建linux用户帐户但密码错误

python - 知道如何在 Windows 框中更新 python PIP 吗?