使用别名

时间:2017-12-31 03:54:56

标签: linux bash virtualenv

我可以输入. 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不在主项目文件夹中。我会很感激一些指导。感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

  1. 使用别名或shell函数代替脚本 - 它们是更改当前shell环境的唯一方法。

  2. 在脚本末尾运行交互式shell(exec $SHELL)。它继承了激活的环境并为您提供命令提示符。要取消激活,只需退出shell(exit [Ctrl] + [D] 。)。