我最近在Windows 11中安装了WSL2 (Ubuntu),以了解它的命令和使用情况。一切正常,但我无法从Ubuntu中访问我的Windows应用程序。
例如,在Windows中,我已经安装了Anaconda和MySQL,我可以从Git、CMD或PowerShell访问它们,但不能从WSL2的Ubuntu中访问它们。
我大部分时间在工作中使用WSL,但我无法使用本地Windows应用程序。
我试图将我的Anaconda和MySQL的路径导出到zsh,但它仍然不起作用:
export PATH="/mnt/c/Users/verma/anaconda3/Library/bin:$PATH"有什么办法解决这个问题吗?
发布于 2022-05-31 11:38:01
如果我正确地理解了你的评论(和提问体),听起来你可能真的在问两个不同的问题:
中从Ubuntu运行Windows应用程序
这部分很简单,但附带警告。
在默认的WSL配置中,运行Windows应用程序有两个部分:
.exe扩展。Linux没有像Windows那样的自动内核级扩展假设。例如,要运行记事本:
notepad.exe因为它位于默认的Windows路径( WSL使Ubuntu自动可用)。
要运行,比方说,Microsoft Word:
/mnt/c/Program\ Files/Microsoft\ Office/root/Office16/WINWORD.EXE由于Office不在默认的Windows路径上,所以需要指定完整的命令行。
请注意,某些应用程序可能需要通过PowerShell脚本进行某些配置。我不确定,但我认为Anaconda可能属于这一类。在这种情况下,您需要首先执行PowerShell,然后让它启动应用程序。类似于:
powershell -c conda但是(龙来了),请注意,即使您让它运行,WSL中Ubuntu中的Windows通常也是个坏主意。例如,Windows版本的Python将无法理解Linux路径或进程,WSL/Ubuntu在默认情况下将传递给它们。
由于相同的原因,虚拟环境不能工作,因为Windows Python试图设置的路径在Linux/Ubuntu/WSL中无效。
此外,任何本机代码模块都将在Windows环境中运行,而不是在Ubuntu环境中运行,具有相同的路径/进程限制。无论对您还是对代码/解释器来说,事情都会很快变得混乱。
在Ubuntu/WSL中,使用Python的Linux版本,如果需要,使用Anaconda。在Windows中,使用Windows版本。
中的Ubuntu连接到Windows网络应用程序/服务器
WSL2实际上运行在一个单独的、虚拟化的NAT网络上,它是从您的Windows主机上运行的。因此,您需要确定用于Windows主机的适当IP地址,以便从WSL2网络连接到它。
假设在受支持的Windows发行版上默认安装WSL/Ubuntu,mDNS通常是最好的选择。
您可以在Ubuntu中使用的mDNS主机名如下所示:
MyComputerName.local只要您没有从WSL默认情况下更改DNS解析器,这将与在Ubuntu中运行hostname时看到的相同。
您可以通过以下方式以编程方式确定此值:
.local例如,在Bash中,要连接到Windows MySQL服务器:
"$(hostname).local"服务器: mysql -hostname=$(Hostname).local --user=me -p mydbhttps://askubuntu.com/questions/1411512
复制相似问题