我目前正在使用一台windows机器,并且正忙于一些遗传算法的东西,这些东西依赖于使用PyBullet虚拟环境来测试我的"机器人"的机车能力。我正在做的项目要求我使用多线程,所以我的讲师建议我安装WSL来这样做,因为显然它在Windows上不起作用。
我安装了WSL,并创建了一个python虚拟环境来工作。一切都很好,直到我尝试连接到PyBullet服务器,它产生以下输出:
pybullet build time: Nov 27 2022 13:20:33
startThreads creating 1 threads.
starting thread 0
started thread 0
argc=2
argv[0] = --unused
argv[1] = --start_demo_name=Physics Server
ExampleBrowserThreadFunc started
X11 functions dynamically loaded using dlopen/dlsym OK!
cannot connect to X server
我能做些什么来解决这个问题?请询问是否需要更多关于我的设置的信息:)
看起来你的脚本想要打开某种图形用户界面。
您可以尝试在windows上安装X11服务器并在WSL中配置它。这样就可以在WSL中打开图形窗口。你应该可以在网上找到一些教程,但它可能有点乏味。这可以帮助您开始,但有多种方法和工具。
以后版本的wsdl应该支持开箱即用的图形界面。我想你需要Windows 11。(然而,到目前为止我从未尝试过)
这可能会有帮助。
所以我设法解决了这个问题。我不确定为什么WSL无法启动GUI应用程序,我首先认为它与X11有关,但是我有最新版本的WSL,它应该具有本机GUI支持。接下来,我认为它与python包有关,因为我在普通windows 11的虚拟环境中有一个可用版本的代码,我只是没有使用它,因为它无法进行多处理。因此,为了解决这个问题,我将libs文件夹从窗口中的venv复制到WSL上的venv。出于某种原因,它解决了这个问题。我不这样做的最初原因是,它没有说我丢失了任何依赖项。
感谢那些试图帮助我的人。