所以,再一次,我做了一个很好的python程序,它让我的生活变得更容易,并节省了很多时间。当然,这涉及到一个由virtualenvwrapper的mkvirtualenv
函数生成的virtualenv。该项目有一个requirements.txt文件,其中包含一些所需的库(请求也是:D),如果没有这些库,程序将无法运行。
我正在尝试添加一个bin/run-app
可执行外壳脚本,该脚本将位于我的路径中(实际上是符号链接)。现在,在这个脚本中,我需要切换到virtualenv,然后才能运行这个程序。所以我把这个放进去
#!/bin/bash
# cd into the project directory
workon "$(cat .venv)"
python main.py
文件.venv
包含virtualenv名称。但是当我运行这个脚本时,我得到了workon: command not found
错误。
当然,我在我的bashrc中有virtualenvwrapper.sh源代码,但是在这个shell脚本中似乎没有。
那么,我该如何在这里访问这些虚拟封装函数呢?还是我做错了?如何启动python工具,每个工具都有自己的virtualenv!?
发布于 2011-09-24 21:53:51
只需在脚本中使用virtualenvwrapper.sh
脚本,即可导入virtualenvwrapper的函数。然后,您应该能够在脚本中使用workon
函数。
也许更好的是,您可以创建一个venv-run.sh
脚本(例如,您可以将其命名为Python ),以便在给定的virtualenv中运行任何Python脚本,并将其放置在/usr/bin
、/usr/local/bin
或PATH
中的任何目录中。
这样的脚本可能如下所示:
#!/bin/sh
# if virtualenvwrapper.sh is in your PATH (i.e. installed with pip)
source `which virtualenvwrapper.sh`
#source /path/to/virtualenvwrapper.sh # if it's not in your PATH
workon $1
python $2
deactivate
并且可以像venv-run.sh my_virtualenv /path/to/script.py
一样简单地使用
发布于 2012-08-03 16:56:52
我找不到在shell中触发virtualenvwrapper
命令的方法。但是这个技巧可以帮助你:假设你的env。名称为myenv
,然后将以下行放在脚本的开头:
ENV=myenv
source $WORKON_HOME/$ENV/bin/activate
发布于 2015-06-09 19:40:57
这是个known issue。作为一种解决办法,您可以将脚本内容作为函数,并将其放入~/.bashrc
或~/.profile
中
function run-app() {
workon "$(cat .venv)"
python main.py
}
https://stackoverflow.com/questions/7538628
复制相似问题