使用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总是说你需要使用“源”来运行它的激活脚本。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |