【问题标题】:Activate virtualenv using alias使用别名激活 virtualenv
【发布时间】:2017-12-31 03:54:56
【问题描述】:

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

【问题讨论】:

  • 更好的是,请查看 virtualenvwrapper,它可以更轻松地管理 virtualenvs。 virtualenvwrapper.readthedocs.io/en/latest
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • 感谢您的建议。 Stack Overflow 似乎是一个合适的场所,因为问题是关于访问我的开发环境,还有其他关于别名、bash 脚本和访问虚拟环境的已回答 SO 问题(但与我尝试做的不太一样)。

标签: linux bash virtualenv


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 使用 shell 函数有效。谢谢你。添加 'exec $SHELL' 并没有激活虚拟环境——可能是用户错误。我阅读了 virtualenvwrapper,虽然我看到了好处,但我不认为有足够的环境来保证额外的复杂性。如果我的情况发生变化,我会重新考虑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 2018-01-16
  • 2019-09-08
  • 2011-10-20
相关资源
最近更新 更多