我一直在尝试让 Tensorflow 在 WSL 2 中识别我的 GPU。但是,我相信这与我现在遇到的问题很大程度上无关。
每当我尝试在 WSL 中运行
pyenv
命令时,都会收到以下错误:
/mnt/c/Users/USER/.pyenv/pyenv-win/bin/pyenv: 3: cygpath: not found
/mnt/c/Users/USER/.pyenv/pyenv-win/bin/pyenv: 3: exec: cmd: not found
Pyenv 确实可以在 WSL 环境之外工作。
以下是我的环境的详细信息:
pyenv - 3.1.1
WSL Kernel - 5.15.133.1-1
WSL version - 2.0.9.0
Windows 10
Windows Version - 10.0.19045.3693
如何让 pyenv 在 WSL 中工作?
我的WSL环境似乎指的是Windows上安装的pyenv版本,而不是WSL(ubuntu)中安装的pyenv版本。
在 WSL 中安装 pyenv 并设置正确的路径应该会有所帮助。可以这样做:
curl https://pyenv.run | bash
然后将下一段代码添加到您的
~/.bashrc
并将 {USER} 变量更改为您自己的用户名。
export PATH="/home/USER/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
有关在 WSL Ubuntu 中安装 pyenv 的更多详细信息,请参阅此处。
附注如果您在 cygpath 和 exec:cmd 中遇到“权限被拒绝”错误,请参阅此处。
我先在 WSL2 上安装了 pyenv,后来又在 Windows 上安装了。那是我开始收到错误的时候。就像@Abe一样,我决定尝试在wsl中运行Windows版本而不是Ubuntu版本。
我在 .bashrc 中找到了这一行,仅当未找到 pyenv 命令时,才会将 pyenv 根添加到 PATH 变量。我评论/更改它以始终将 pyenv 根添加到 $PATH 并且它再次开始工作。
#command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
export PATH="$PYENV_ROOT/bin:$PATH"