openai/mujoco-py

Python 3.6 support

jonasschneider opened this issue ยท 11 comments

As reported in #43, #47, #49, we currently don't support Python 3.6. We should fix these bugs and add 3.6 to the Travis build matrix.

Any ETA?

Would be great if could use 3.6! I am trying to use the class attribute annotation feature of 3.6 for parameter prototypes.

Now I'm out of luck ๐Ÿ˜‚ @jonasschneider

Hey @abhigenie92 @episodeyang -- likely nobody at OpenAI is currently working on this, since we use 3.5 exclusively internally. I don't expect this to change for at least a few months. However I'd be very happy to merge a patch adding support for 3.6.

Are there any updates on 3.6 support? I suspect it shouldn't be too hard to add 3.6 support if 3.5 is already there.

Update: after recent changes we support Python 3.6 now. I'm closing this and suggest other issues be opened separately.

From which version?
Please update the readme

@liorshk Since 1.50.1.1 was tagged 4 months ago, I suspect only in the master branch

Caveat Emptor

Please update Readme @machinaut

This support for 3.6.x is either broken or is not working properly. The gym environment works fine for 3.6.x with very minor warnings but mujoco-py doesn't work at all for python 3.6.x and latest gym. Basically I have installed mjpro150, mujoco-py=1.50.x, gym=0.10.x on ubuntu 16.04. mujoco-py fails during installation cannot find some header files:

/tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/gl/eglshim.c:4:21: fatal error: GL/glew.h: No such file or directory
  compilation terminated.
  error: command '/usr/bin/gcc-5' failed with exit status 1

  ----------------------------------------
  Failed building wheel for mujoco-py
  Running setup.py clean for mujoco-py
Failed to build mujoco-py
Installing collected packages: mujoco-py
  Running setup.py install for mujoco-py ... error
    Complete output from command /home/user/miniconda3/envs/tf/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7uw627tn/mujoco-py/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-n5yr5kcp-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'mujoco_py.cymj' extension
    /tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/generated/_pyxbld_LinuxExtensionBuilder/temp.linux-x86_64-3.6/tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/cymj.o up to date, skipping.
    /usr/bin/gcc-5 -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Imujoco_py -I/tmp/pip-build-7uw627tn/mujoco-py/mujoco_py -I/home/user/.mujoco/mjpro150/include -I/home/user/miniconda3/envs/tf/lib/python3.6/site-packages/numpy/core/include -I/tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/vendor/egl -I/home/user/miniconda3/envs/tf/include/python3.6m -c /tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/gl/eglshim.c -o /tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/generated/_pyxbld_LinuxExtensionBuilder/temp.linux-x86_64-3.6/tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/gl/eglshim.o -fopenmp -w
    /tmp/pip-build-7uw627tn/mujoco-py/mujoco_py/gl/eglshim.c:4:21: fatal error: GL/glew.h: No such file or directory
    compilation terminated.
    error: command '/usr/bin/gcc-5' failed with exit status 1

    ----------------------------------------
Command "/home/user/miniconda3/envs/tf/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7uw627tn/mujoco-py/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-n5yr5kcp-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-7uw627tn/mujoco-py/

with latest python=3.6.x and latest mjpro1.50.x it is exiting as
command 'gcc' failed with exit status 1,
the error is as:
fatal error: mjmodel.h: No such file or directory #include "mjmodel.h"

For me the problem was that the mjmodel.h was in the .mujoco/mjpro150/mjpro150/include/, but not on the .mujoco/mjpro150/include/.
Copying the contents of the .mujoco/mjpro150/mjpro150/ to one level up solved the issue.