加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用shell脚本激活VirtualEnv似乎不工作

发布时间:2020-12-15 20:07:22 所属栏目:安全 来源:网络整理
导读:我试着激活VirtualEnv通过shell脚本,像下面的一个,但它似乎不工作, #!/bin/shsource ~/.virtualenvs/pinax-env/bin/activate 我得到以下错误 $ sh virtualenv_activate.sh virtualenv_activate.sh: 2: source: not found 但如果我在终端上输入相同的命令
我试着激活VirtualEnv通过shell脚本,像下面的一个,但它似乎不工作,
#!/bin/sh
source ~/.virtualenvs/pinax-env/bin/activate

我得到以下错误

$ sh virtualenv_activate.sh 
virtualenv_activate.sh: 2: source: not found

但如果我在终端上输入相同的命令似乎工作

$ source ~/.virtualenvs/pinax-env/bin/activate
(pinax-env)gautam@Aspirebuntu:$

所以我改变了shell脚本

#!/bin/bash
source ~/.virtualenvs/pinax-env/bin/activate

如建议和使用

$ bash virtualenv_activate.sh 
gautam@Aspirebuntu:$

运行脚本。

这不会抛出一个错误,但也不激活虚拟环境

那么任何建议如何解决这个问题?

PS:我使用Ubuntu 11.04

sh不同于bash(虽然有些系统只是将sh链接到bash,所以运行sh实际上运行bash)。你可以认为sh是bash的一个watered down版本。 bash有一件事,sh不是“source”命令。这是为什么你得到这个错误…源运行良好在您的bash shell。但是当您使用sh启动脚本时,您将在子进程中的shell中运行该脚本。由于该脚本在sh中运行,因此找不到“source”。

解决方案是在bash中运行脚本。将第一行更改为…

#!/bin/bash

然后运行…

./virtualenv_activate.sh

…要么…

/bin/bash virtualenv_activate.sh

编辑:

如果想要激活virtualenv来更改调用脚本的shell,您需要使用“source”或“dot运算符”。这确保脚本在当前shell中运行(并因此更改当前环境)…

source virtualenv_activate.sh

…要么…

. virtualenv_activate.sh

另一方面,这就是为什么virtualenv总是说你需要使用“源”来运行它的激活脚本。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读