我正在编写一个shell脚本来设置我的虚拟环境并通过pip安装所有相关的python包。
virtualenv -q -p /usr/bin/python3.5 $1
/bin/bash $1/bin/activate
pip install -r requirements.txt
$ 1是virtualenv的名称。 我遇到的问题是pip命令在我的virtualenv中不起作用,而是在全局执行。
答案 0 :(得分:4)
我的意思是你要知道你必须激活virtualenv:
来源激活
我不确定是否可以在shell脚本中完成此操作,但您可以按以下方式尝试:
virtualenv -q -p /usr/bin/python3.5 $1
source $1/bin/activate
$1/bin/pip install -r requirements.txt
# pip install -r requirements.txt
摘录自激活:
$ cat activate
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
答案 1 :(得分:2)
看起来您找到了问题的解决方案,但为了将来参考,您无需激活virtualenv以便在其中运行pip:
#!/bin/bash
virtualenv -q -p /usr/bin/python3.5 $1
$1/bin/pip install -r requirements.txt
答案 2 :(得分:0)
缺少的是shebang
我必须使用source myscript.sh
#!/bin/bash
virtualenv -q -p /usr/bin/python3.5 $1
source $1/bin/activate
pip install -r requirements.txt