我写了一个shell脚本作为。
source ve/bin/activate
当我使用命令运行脚本时,将其保存为 activate_shell.sh 。
bash activate_shell.sh
脚本运行时没有错误,但虚拟环境未激活。
您的激活脚本路径,ve/bin/activate
,是相对的。该脚本只能在一个目录中运行。但问题不在这里。
什么是bin/activate
做?它修改了外壳它运行在其中。这就是为什么你必须source
它而不是作为常规程序调用。
您编写的脚本启动它自己的 shell 副本 (bash),激活其中的虚拟环境,然后退出,从而销毁刚刚激活的环境。如果您的脚本在获取bin/activate
,这将是虚拟环境中的Python,而不是系统环境中的Python。
如果您想要一个简单、易于输入的命令来激活 virtualenv,请定义一个外壳函数:
ve() { source $1/bin/activate; }
(是的,直接在 shell 提示符中输入上面的行。)
然后输入ve foo
和 virtualenv 命名为foo
如果您位于正确的目录中,它将在您当前的 shell 中激活。
如果您需要处理大量的 virtualenv,请查看虚拟环境包装器 https://pypi.python.org/pypi/virtualenvwrapper.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)