12

我想玩 OpenAI 健身房的月球着陆器环境。

为了运行这段代码,我需要安装 Box2d,这就是我出现问题的地方。我正在使用带有 conda 4.3.21 和 python 3.6 的 ubuntu 16.04。当我尝试运行环境时收到错误:ModuleNotFoundError: No module named '_Box2D'

所以我尝试直接安装 pybox2d: https ://github.com/pybox2d/pybox2d/blob/master/INSTALL.md ,它产生了相同的错误消息。

然后我尝试按照https://github.com/cbfinn/gps/issues/34中概述的方式从 GitHub 安装

$git clone https://github.com/pybox2d/pybox2d pybox2d_dev
$cd pybox2d_dev
$python setup.py build 
$sudo python setup.py install

如果我运行它(在具有 python 3 的根环境或具有 python 3 的另一个新创建的环境中)我得到结果:

大量处理日志处理 Box2D-2.3.2-py2.7-linux-x86_64.egg 创建 /usr/local/lib/python2.7/dist-packages/Box2D-2.3.2-py2.7-linux-x86_64 .egg 将 Box2D-2.3.2-py2.7-linux-x86_64.egg 提取到 /usr/local/lib/python2.7/dist-packages 将 Box2D 2.3.2 添加到 easy-install.pth 文件

安装 /usr/local/lib/python2.7/dist-packages/Box2D-2.3.2-py2.7-linux-x86_64.egg Box2D的处理依赖==2.3.2 Box2D的处理完成==2.3.2

所以 pybox2d 被安装到 ubuntu 的标准 python 2 的库中,尽管它处于 python 3 conda 环境中。

所以,我正在寻找使用 conda 4.3.21 为 python 3 安装 pybox2d 包的方法

4

5 回答 5

29

当我尝试导入它时,安装Box2Dfrompip导致我出现此处描述的错误。正如 GitHub 问题中所建议的,这就是在 Python 3.6 上对我有用的方法:

conda install swig # needed to build Box2D in the pip install
pip install box2d-py # a repackaged version of pybox2d
于 2019-01-24T02:56:59.223 回答
8

嘿,这个问题看起来很老了,但似乎没有人真正在任何地方给出正确的答案,所以就写这个吧。

在您的 linux 命令中执行以下两行:

$ sudo apt-get install build-essential python-dev swig python-pygame

$点安装Box2D

---------下面是不必要的细节--------

许多人想运行基于 Box2D 的健身房,但您必须像 Mujoco 系列健身房环境一样自行安装。

许多人使用 python 3.6,但安装 Box2D 的最简单方法是 $ conda install -c kne pybox2d 不起作用,因为 pybox2d 一直维护到 py3.5

但是直接做 $ pip install Box2D 并不能解决问题。鉴于其错误消息,错误来自 swig,但实际上并非如此。$ sudo apt-get install build-essential python-dev swig python-pygame 这一行总是一口气解决所有问题。

我一直在基于 Box2D 环境进行研究,但每次我在新环境中安装它时仍然会忘记这个,所以这也适合我哈哈

投稿:https ://github.com/jonasschneider/box2d-py/blob/master/INSTALL.md

顺便说一句,不要忘记仔细检查它是否正确安装。在linux命令中

$ python --version
python 3.6. sthsth
$ python
>>> import numpy as np
>>> import gym
>>> env = gym.make('BipedalWalker-v2')
# If it does not give you error, then it's done!
于 2018-06-30T06:33:36.877 回答
1
sudo apt-get install swig

pip install pybox2d
于 2021-06-07T05:15:23.887 回答
0

您需要激活您的环境:

source activate my_env_name

然后提示更改为:

(my_env_name)

现在,安装pip和不安装sudo

pip install pybox2d
于 2017-06-25T20:43:16.750 回答
0

以这种方式安装对我有用(也在虚拟环境中):

pip install box2d-py==2.3.8

我正在运行健身房 v 0.17.3。

于 2021-12-30T16:47:26.810 回答