我正在尝试通过像这样的非常简单的bash脚本激活pyenv-virtualenv环境。
lines = [
['101','a','f1','abc'],
['101','a','f2','def'],
['102','a','f2','xyz'],
['102','a','f3','fgh'],
['103','b','f1','rst']
]
但是我无法通过以下错误激活我的环境:
set -e
pyenv activate myenv
我可以在命令行中激活它,所以我认为这是由于我的shell环境造成的。
我使用Failed to activate virtualenv.
Perhaps pyenv-virtualenv has not been loaded into your shell properly.
Please restart current shell and try again.
,但是它是在fish shell
中读取$PATH
设置后启动的。
我向您显示我的设置。
bash shell
:
.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 OS
:v2.7.1 fish
:v1.2.5 pyenv
:v1.1.3 答案 0 :(得分:0)
我相信原因是您在Fish Shell环境中初始化 PyEnv,然后在Bash Shell环境中调用 PyEnv(通过您的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脚本的顶部。