gpt4 book ai didi

bash - 无法通过 shellscript 激活 virtualenv

转载 作者:行者123 更新时间:2023-12-04 16:16:33 27 4
gpt4 key购买 nike

我正在尝试通过像这样非常简单的 bash 脚本来激活我的 pyenv-virtualenv 环境。

set -e
pyenv activate myenv

但我无法激活我的环境并出现以下错误:

Failed to activate virtualenv.

Perhaps pyenv-virtualenv has not been loaded into your shell properly.
Please restart current shell and try again.

我可以在命令行中激活它,所以我认为这是由于我的 shell 环境。

我使用 fish shell,但它是在 bash shell 中读取 $PATH 设置后启动的。我给你看我的设置。

.bash_profile:

export LANG="ja_JP.UTF-8"

export XDG_CONFIG_HOME="$HOME/.config"

export PATH="/sbin"
export PATH="/usr/sbin:$PATH"
export PATH="/bin:$PATH"
export PATH="/usr/bin:$PATH"
export PATH="/usr/local/bin:$PATH"

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

exec fish

还有我的config.fish:

status --is-interactive; and source (pyenv init -|psub)
status --is-interactive; and source (pyenv virtualenv-init -|psub)

怎么了?

我正在使用:

  • 操作系统:OS X 10.13.5
  • fish :v2.7.1
  • pyenv: v1.2.5
  • pyenv-virtualenv: v1.1.3

最佳答案

我认为原因是您在 Fish shell 环境中初始化 PyEnv,然后在 Bash shell 环境中调用 PyEnv(通过您的 Bash 脚本)。要解决此问题,您可以尝试以下任一可能的解决方案:

  1. 在您的 Bash 环境(除了您的 Fish 环境)中初始化 PyEnv
  2. 用 Fish 而不是 Bash 编写脚本

由于 PyEnv 似乎比 Fish 对 Bash 的支持更好,所以让我们关注选项 #1。 PyEnv 安装指南的第 3 步建议使用以下命令将 PyEnv 初始化添加到 ~/.bash_profile:

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

运行该命令后,我怀疑您的脚本会按预期运行。如果没有,您可以尝试将相同的 PyEnv 初始化片段(您刚刚添加到 ~/.bash_profile)添加到 Bash 脚本的顶部。

关于bash - 无法通过 shellscript 激活 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com