使用别名激活virtualenv

问题描述 投票:4回答:1

我可以通过输入. bin/activate从它的文件夹激活我的python虚拟环境。我想改为从激活环境的主文件夹(或其他任何地方)输入单个单词别名,例如shazam,更改为我的主项目文件夹,并列出我的项目。

我尝试在.bashrc中创建一个别名,该别名指向包含以下内容的.sh文件:

cd ~/path-to-virtual-environment
. bin/activate
cd ~/path-to-master-project-folder
ls -a

我得到了一个权限被拒绝的错误,所以我跑了chmod u+x <script file>。该脚本现在运行,但VE未激活,并且在列出项目文件夹时,shell不在主项目文件夹中。我会很感激一些指导。谢谢。

linux bash virtualenv
1个回答
1
投票

~/.virtualenvs中重新创建所有环境并安装virtualenvwrapper。激活env的命令是workon shazam。支持命令行完成。

现在关于你的问题:你试图在shell脚本中激活一个环境。这不起作用,因为shell脚本与另一个shell一起运行并且env激活改变了它们的环境,而不是当前的环境。即,环境被短暂激活,但随后在脚本结束时,新shell退出并且环境已停用。

有两种方法可以解决这个问题。

  1. 使用别名或shell函数而不是脚本 - 它们是更改当前shell环境的唯一方法。
  2. 在脚本末尾运行交互式shell(exec $SHELL)。它继承了激活的环境并为您提供命令提示符。要取消激活,只需退出shell(exit或[Ctrl] + [D]。)。
© www.soinside.com 2019 - 2024. All rights reserved.