diff --git a/.travis.yml b/.travis.yml index 9addbc7a3..b64ddb62b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,12 @@ +language: python +python: + - "2.7" + - "3.4" dist: trusty sudo: required cache: apt: true pip: true -language: python addons: apt: sources: @@ -24,14 +27,14 @@ addons: - libblas-dev - liblapack-dev - gfortran -python: - - "2.7" - - "3.4" before_install: + # Start an X server so rendering works. - Xvfb :12 -screen 0 800x600x24 +extension RANDR & - # In a pull request, there are no secrets, and hence no MuJoCo: - # https://docs.travis-ci.com/user/pull-requests#Security-Restrictions-when-testing-Pull-Requests. + + # In a pull request, there are no secrets, and hence no MuJoCo: + # https://docs.travis-ci.com/user/pull-requests#Security-Restrictions-when-testing-Pull-Requests. - '[ -z ${MUJOCO_KEY_BUNDLE+x} ] || ( mkdir -p ~/.mujoco && curl https://openai-public.s3-us-west-2.amazonaws.com/mujoco/$MUJOCO_KEY_BUNDLE.tar.gz | tar xz -C ~/.mujoco )' + # Without this line, Travis has fork()s fail with an out of memory # error. (These fork()s are for spawning the subprocess for video # recording.) We should debug the memory usage at some stage, but @@ -39,8 +42,8 @@ before_install: - sudo sysctl -w vm.overcommit_memory=1 env: - DISPLAY=:12 -install: pip install tox-travis -script: tox +install: travis_wait pip install -r requirements_dev.txt +script: nose2 notifications: slack: diff --git a/requirements.txt b/requirements.txt index 9c5175ff1..c177d8cda 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ numpy>=1.10.4 requests>=2.0 six pyglet>=1.2.0 +scipy==0.17.1 diff --git a/setup.py b/setup.py index 21794c68a..48776b3e4 100644 --- a/setup.py +++ b/setup.py @@ -5,6 +5,23 @@ import sys, os.path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'gym')) from version import VERSION +# Environment-specific dependencies. +extras = { + 'atari': ['atari_py>=0.0.17', 'Pillow', 'PyOpenGL'], + 'board_game' : ['pachi-py>=0.0.19'], + 'box2d': ['box2d-py'], + 'classic_control': ['PyOpenGL'], + 'doom': ['doom_py>=0.0.11'], + 'mujoco': ['mujoco_py>=0.4.3', 'imageio'], + 'parameter_tuning': ['keras', 'theano'], +} + +# Meta dependency groups. +all_deps = [] +for group_name in extras: + all_deps += extras[group_name] +extras['all'] = all_deps + setup(name='gym', version=VERSION, description='The OpenAI Gym: A toolkit for developing and comparing your reinforcement learning agents.', @@ -18,24 +35,7 @@ setup(name='gym', install_requires=[ 'numpy>=1.10.4', 'requests>=2.0', 'six', 'pyglet>=1.2.0', ], - extras_require={ - 'all': ['atari_py>=0.0.17', 'Pillow', 'PyOpenGL', - 'pachi-py>=0.0.19', - 'box2d-py', - 'doom_py>=0.0.11', - 'mujoco_py>=0.5.2', 'imageio', - 'keras', 'theano'], - - # Environment-specific dependencies. Keep these in sync with - # 'all'! - 'atari': ['atari_py>=0.0.17', 'Pillow', 'PyOpenGL'], - 'board_game' : ['pachi-py>=0.0.19'], - 'box2d': ['box2d-py'], - 'classic_control': ['PyOpenGL'], - 'doom': ['doom_py>=0.0.11'], - 'mujoco': ['mujoco_py>=0.4.3', 'imageio'], - 'parameter_tuning': ['keras', 'theano'], - }, + extras_require=extras, package_data={'gym': ['envs/mujoco/assets/*.xml', 'envs/classic_control/assets/*.png', 'envs/doom/assets/*.cfg']}, tests_require=['nose2', 'mock'], )