virtualenvwrapper functions unavailable in shell scripts
所以,再一次,我做了一个很好的python程序,它使我的生活变得更加简单,节省了很多时间。当然,这涉及到一个virtualenv,由virtualenvwrapper的
我正在尝试添加一个
1 2 3 4 | #!/bin/bash # cd into the project directory workon"$(cat .venv)" python main.py |
文件
当然,我的bashrc中有来自virtualenwrapper.sh的源代码,但在这个shell脚本中似乎没有。
那么,我如何访问这些virtualenvwrapper函数呢?或者我这样做是错误的?如何启动Python工具,每个工具都有自己的virtualenv!?
在你的脚本中的脚本是为了输入虚拟文档的功能。然后你就可以在脚本中使用
也许更好的是,你可以创建一个壳牌脚本(例如,它可以叫EDOCX1〕〔4〕),将任何Python脚本运进一个虚拟的纪念品,并将它放在EDOCX1〔5,EDOCX1〕〔6〕或你的
这样的脚本可以看起来像这样:
1 2 3 4 5 6 7 | #!/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 |
可以像
我找不到触发壳牌
1 2 | ENV=myenv source $WORKON_HOME/$ENV/bin/activate |
这是个已知的出路作为一个工作场所,你可以把脚本的内容变成一个功能,并将它放在另一个
1 2 3 4 | function run-app() { workon"$(cat .venv)" python main.py } |
你也可以直接叫虚拟PythonFirst find the path to the executable:
1 2 3 | $ workon myenv $ which python /path/to/virtualenv/myenv/bin/python |
然后呼唤你的壳牌脚本:
1 2 3 | #!/bin/bash /path/to/virtualenv/myenv/bin/python myscript.py |
Add these lines to your Bashrcor&U profile.
1 2 | export WORKON_HOME=~/Envs source /usr/local/bin/virtualenvwrapper.sh |
重新打开你的终点站尝试
显然,我的方式是错误的。在Venv档案中存储虚拟V的名称,我应该将虚拟V的目录路径输入。
1 | (cdvirtualenv && pwd) > .venv |
我把它放在
1 2 | source"$(cat .venv)/bin/activate" python main.py |
还有耶!
如果你的Python脚本需要一个特殊的虚拟虚拟输入/安装在虚拟如果你需要访问环境之外的脚本,你可以做一个symlink。
Main.py from Virtalenv's
1 2 3 4 5 | #!/path/to/virtualenv/bin/python import yourmodule if __name__=="__main__": yourmodule.main() |
Symlink in your path:
ZZU1
In BIN/Run-App:
1 2 3 | #!/bin/sh # cd into the project directory pymain arg1 arg2 ... |