Windows WSL 2 上 Pyenv 的“cygpath:未找到”和“exec:cmd:未找到”

问题描述 投票:0回答:2

我一直在尝试让 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 中工作?

python windows-subsystem-for-linux wsl-2 pyenv
2个回答
1
投票

我的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 中遇到“权限被拒绝”错误,请参阅此处


0
投票

我先在 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"
© www.soinside.com 2019 - 2024. All rights reserved.