【发布时间】:2020-07-25 21:55:26
【问题描述】:
正如标题所述,我正在设置 pyenv 以在我朋友 Mac 上的帐户上运行 python 3.8.5。我认为问题来自我的 ~/.zshrc 文件中的这个命令
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval"$(pyenv init-)"\nfi' >>~/.zshrc
到目前为止,我已经检查了 $PATH 命令以确保该命令和导出命令没有任何问题,但无法解决问题。还尝试在 bash shell 中使用上述命令,最后带有 ~/.bash_profile 仍然不起作用。由于所有权问题,我无法运行 brew bash 或 brew zsh。
如果有帮助,我会关注guide 进行设置。
【问题讨论】:
-
看起来您添加到 .zshrc(和 .bash_profile)的命令缺少一些空格,特别是在
eval和双引号之间,以及在init和破折号之间。可能还有其他问题,但这些是我看到的。由于这已被错误地添加到这些文件中,因此您需要对其进行编辑以解决问题(仅再次运行命令不会这样做,它只会在不正确的版本之外添加正确的版本)。 -
@GordonDavisson 我已经修复了间距,但仍然出现错误
-
@JScottAnderson 在修复命令中的拼写错误后,您仍然遇到完全相同的错误 (
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc)?你能检查一下你的~/.zshrc没有以前运行那个错误命令的那个错误吗?并且一定要重启你的shell(例如exec "$SHELL")! -
那些错误信息看起来有点奇怪——“command not found:”和“eval”之间有一个额外的空格。这表明可能存在诸如不间断空格而不是常规空格之类的东西,看起来没问题,但无法正常工作。尝试运行
grep eval ~/.zshrc | LC_ALL=C cat -v -
我就是这么想的。 “eval”之前的那个“
M-BM-”就是它如何显示一个不间断的空格字符。您需要使用编辑器删除“eval”之前的字符。
标签: python macos terminal zsh pyenv