Git Product home page Git Product logo

atari-py's People

Contributors

adversariel avatar bquast avatar christopherhesse avatar gdb avatar jessefarebro avatar jkterry1 avatar jonasschneider avatar joschu avatar nczempin avatar nottombrown avatar pzhokhov avatar shelhamer avatar siemanko avatar tlbtlbtlb avatar yangqing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atari-py's Issues

saveScreenPNG triggers assertion error for Amidar

repl> import atari_py
repl> from atari_py.ale_python_interface import ALEInterface
repl> game_path = atari_py.get_game_path('amidar')
repl> ale = ALEInterface()
repl> ale.loadROM(str.encode(game_path))
repl> ale.act(2)
repl> ale.saveScreenPNG(str.encode('fooo.png'))
Assertion failed: ((val & 0x01) == 0), function getRGB, file /private/var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/pip-req-build-j05pw3nn/build/lib.macosx-10.6-intel-3.6/atari_py/ale_interface/src/common/ColourPalette.cpp, line 51.
Abort trap: 6

This error does not occur for Breakout, nor SpaceInvaders. Using atari-py (0.1.1) with python 3.5.2.

package license in pypi distribution

The pypi tarball doesn't have the GNU License packaged with it - for future uses, it could be helpful if it was including in that source! Thanks :)

Install Issue with Ubuntu 17.10.1

Been trying different things to get this to install and can't on either Ubuntu 17.10 or 16.04. I'm not attached to Ubuntu, so if this works easier on a different version of Linux, I'll switch to that. I have cmake installed, but unsure of how to fix this error.

Trying to install in a virtual environment using command: sudo pip3 install atari-py

Error:
Collecting atari-py
Downloading atari-py-0.1.1.tar.gz (760kB)
100% |████████████████████████████████| 768kB 1.4MB/s
Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from atari-py)
Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from atari-py)
Installing collected packages: atari-py
Running setup.py install for atari-py ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-gyj9tscz/atari-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-8zeepm_h-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
make: Entering directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:210 (FILE):
Policy CMP0053 is not set: Simplify variable reference and escape sequence
evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

  For input:

    '
    IF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
      MESSAGE(FATAL_ERROR \"Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
    ENDIF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")

    FILE(READ \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\" files)
    STRING(REGEX REPLACE \"\\n\" \";\" files \"\${files}\")
    FOREACH(file \${files})
      MESSAGE(STATUS \"Uninstalling \"\$ENV{DESTDIR}\${file}\"\")
      IF(EXISTS \"\$ENV{DESTDIR}\${file}\")
        EXEC_PROGRAM(
          \"@CMAKE_COMMAND@\" ARGS \"-E remove \"\$ENV{DESTDIR}\${file}\"\"
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT \"\${rm_retval}\" STREQUAL 0)
          MESSAGE(FATAL_ERROR \"Problem when removing \"\$ENV{DESTDIR}\${file}\"\")
        ENDIF(NOT \"\${rm_retval}\" STREQUAL 0)
      ELSE(EXISTS \"\$ENV{DESTDIR}\${file}\")
        MESSAGE(STATUS \"File \"\$ENV{DESTDIR}\${file}\" does not exist.\")
      ENDIF(EXISTS \"\$ENV{DESTDIR}\${file}\")
    ENDFOREACH(file)
    '

  the old evaluation rules produce:

    '
    IF(NOT EXISTS "/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build/install_manifest.txt")
    ENDIF(NOT EXISTS "/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build/install_manifest.txt")

    FILE(READ "/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "/usr/bin/cmake" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  but the new evaluation rules produce:

    '
    IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
    ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")

    FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "@CMAKE_COMMAND@" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  Using the old result for compatibility since the policy is not set.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build
make[1]: Entering directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[2]: Entering directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
make[3]: Entering directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
Scanning dependencies of target ale-c-lib
make[3]: Leaving directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
make[3]: Entering directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
[  1%] Building CXX object CMakeFiles/ale-c-lib.dir/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp.o
[  1%] Building CXX object CMakeFiles/ale-c-lib.dir/src/common/ColourPalette.cpp.o
[  1%] Building CXX object CMakeFiles/ale-c-lib.dir/src/common/Constants.cpp.o
[  2%] Building CXX object CMakeFiles/ale-c-lib.dir/src/ale_interface.cpp.o
[  3%] Building CXX object CMakeFiles/ale-c-lib.dir/src/common/Log.cpp.o
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:41:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/environment/stella_environment.hpp:117:10: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
     std::auto_ptr<ScreenExporter> m_screen_exporter; // Automatic screen recorder
          ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:41:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/environment/stella_environment.hpp:117:10: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
     std::auto_ptr<ScreenExporter> m_screen_exporter; // Automatic screen recorder
          ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:153:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<OSystem> theOSystem;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:154:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<Settings> theSettings;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:155:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<RomSettings> romSettings;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:153:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<OSystem> theOSystem;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:156:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<StellaEnvironment> environment;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:154:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<Settings> theSettings;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:163:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   static void createOSystem(std::auto_ptr<OSystem> &theOSystem,
                                  ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:164:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                             std::auto_ptr<Settings> &theSettings);
                                  ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:155:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<RomSettings> romSettings;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4:0,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:166:33: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                            std::auto_ptr<OSystem> &theOSystem);
                                 ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:4,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:156:8: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   std::auto_ptr<StellaEnvironment> environment;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:163:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
   static void createOSystem(std::auto_ptr<OSystem> &theOSystem,
                                  ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:164:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                             std::auto_ptr<Settings> &theSettings);
                                  ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:166:33: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                            std::auto_ptr<OSystem> &theOSystem);
                                 ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:55:39: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
 void ALEInterface::createOSystem(std::auto_ptr<OSystem> &theOSystem,
                                       ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:56:32: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                           std::auto_ptr<Settings> &theSettings) {
                                ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:69:38: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
                                 std::auto_ptr<OSystem> &theOSystem) {
                                      ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/../emucore/m6502/src/bspf/src/bspf.hxx:50,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/../common/Array.hxx:27,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/emucore/FSNode.hxx:57,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.hpp:33,
                 from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/ale_interface.cpp:30:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
[  4%] Building CXX object CMakeFiles/ale-c-lib.dir/src/common/ScreenExporter.cpp.o
In file included from /tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.cpp:1:0:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h: In function ‘void getScreenRGB2(ALEInterface*, unsigned char*)’:
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_c_wrapper.h:71:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0;i < screen_size;i++){
                   ~~^~~~~~~~~~~~~
/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/src/common/ScreenExporter.cpp:18:10: fatal error: zlib.h: No such file or directory
 #include <zlib.h>
          ^~~~~~~~
compilation terminated.
CMakeFiles/ale-c-lib.dir/build.make:182: recipe for target 'CMakeFiles/ale-c-lib.dir/src/common/ScreenExporter.cpp.o' failed
make[3]: *** [CMakeFiles/ale-c-lib.dir/src/common/ScreenExporter.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/ale-c-lib.dir/all' failed
make[2]: *** [CMakeFiles/ale-c-lib.dir/all] Error 2
make[2]: Leaving directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
Makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface/build'
Makefile:4: recipe for target 'build' failed
make: *** [build] Error 2
make: Leaving directory '/tmp/pip-build-gyj9tscz/atari-py/atari_py/ale_interface'
Could not build atari-py: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '3']' returned non-zero exit status 2.. (HINT: are you sure cmake is installed? You might also be missing a library. Atari-py requires: zlib [installable as 'apt-get install zlib1g-dev' on Ubuntu].)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-gyj9tscz/atari-py/setup.py", line 36, in <module>
    tests_require=['nose2']
  File "/usr/local/lib/python3.6/dist-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/install.py", line 61, in run
    return orig.install.run(self)
  File "/usr/lib/python3.6/distutils/command/install.py", line 589, in run
    self.run_command('build')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/tmp/pip-build-gyj9tscz/atari-py/setup.py", line 16, in run
    subprocess.check_call(cmd)
  File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '3']' returned non-zero exit status 2.

----------------------------------------

Command "/usr/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-gyj9tscz/atari-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-8zeepm_h-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-gyj9tscz/atari-py/

Make fails when trying to install Atari-py on windows

When I try to run make in atari-py/ I get this error:

make -C atari_py/ale_interface build
make[1]: Entering directory '/c/Users/Paul/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
-- The C compiler identification is MSVC 19.13.26132.0
-- The CXX compiler identification is MSVC 19.13.26132.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:210 (FILE):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation.  Run "cmake --help-policy CMP0053" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '
    IF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
      MESSAGE(FATAL_ERROR \"Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
    ENDIF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")

    FILE(READ \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\" files)
    STRING(REGEX REPLACE \"\\n\" \";\" files \"\${files}\")
    FOREACH(file \${files})
      MESSAGE(STATUS \"Uninstalling \"\$ENV{DESTDIR}\${file}\"\")
      IF(EXISTS \"\$ENV{DESTDIR}\${file}\")
        EXEC_PROGRAM(
          \"@CMAKE_COMMAND@\" ARGS \"-E remove \"\$ENV{DESTDIR}\${file}\"\"
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT \"\${rm_retval}\" STREQUAL 0)
          MESSAGE(FATAL_ERROR \"Problem when removing \"\$ENV{DESTDIR}\${file}\"\")
        ENDIF(NOT \"\${rm_retval}\" STREQUAL 0)
      ELSE(EXISTS \"\$ENV{DESTDIR}\${file}\")
        MESSAGE(STATUS \"File \"\$ENV{DESTDIR}\${file}\" does not exist.\")
      ENDIF(EXISTS \"\$ENV{DESTDIR}\${file}\")
    ENDFOREACH(file)
    '

  the old evaluation rules produce:

    '
    IF(NOT EXISTS "C:/Users/Paul/atari-py/atari_py/ale_interface/build/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: C:/Users/Paul/atari-py/atari_py/ale_interface/build/install_manifest.txt")
    ENDIF(NOT EXISTS "C:/Users/Paul/atari-py/atari_py/ale_interface/build/install_manifest.txt")

    FILE(READ "C:/Users/Paul/atari-py/atari_py/ale_interface/build/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "C:/Program Files/CMake/bin/cmake.exe" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  but the new evaluation rules produce:

    '
    IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
    ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")

    FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "@CMAKE_COMMAND@" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  Using the old result for compatibility since the policy is not set.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Paul/atari-py/atari_py/ale_interface/build
make[2]: Entering directory '/c/Users/Paul/atari-py/atari_py/ale_interface/build'
make[2]: *** No targets specified and no makefile found.  Stop.
make[2]: Leaving directory '/c/Users/Paul/atari-py/atari_py/ale_interface/build'
make[1]: *** [Makefile:4: build] Error 2
make[1]: Leaving directory '/c/Users/Paul/atari-py/atari_py/ale_interface'
make: *** [makefile:4: build] Error 2

I have both Make and Cmake installed through msys2, and I followed this article:
https://github.com/j8lp/atari-py

Installation error on gentoo

I got an error at pip install -U atari-py, and the same error when trying to build from master :

running build
make: Entering directory '/home/dargor/contrib/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
CMake Warning (dev) at CMakeLists.txt:210 (FILE):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation.  Run "cmake --help-policy CMP0053" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '
    IF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
      MESSAGE(FATAL_ERROR \"Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
    ENDIF(NOT EXISTS \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\")
    
    FILE(READ \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\" files)
    STRING(REGEX REPLACE \"\\n\" \";\" files \"\${files}\")
    FOREACH(file \${files})
      MESSAGE(STATUS \"Uninstalling \"\$ENV{DESTDIR}\${file}\"\")
      IF(EXISTS \"\$ENV{DESTDIR}\${file}\")
        EXEC_PROGRAM(
          \"@CMAKE_COMMAND@\" ARGS \"-E remove \"\$ENV{DESTDIR}\${file}\"\"
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT \"\${rm_retval}\" STREQUAL 0)
          MESSAGE(FATAL_ERROR \"Problem when removing \"\$ENV{DESTDIR}\${file}\"\")
        ENDIF(NOT \"\${rm_retval}\" STREQUAL 0)
      ELSE(EXISTS \"\$ENV{DESTDIR}\${file}\")
        MESSAGE(STATUS \"File \"\$ENV{DESTDIR}\${file}\" does not exist.\")
      ENDIF(EXISTS \"\$ENV{DESTDIR}\${file}\")
    ENDFOREACH(file)
    '

  the old evaluation rules produce:

    '
    IF(NOT EXISTS "/home/dargor/contrib/atari-py/atari_py/ale_interface/build/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: /home/dargor/contrib/atari-py/atari_py/ale_interface/build/install_manifest.txt")
    ENDIF(NOT EXISTS "/home/dargor/contrib/atari-py/atari_py/ale_interface/build/install_manifest.txt")
    
    FILE(READ "/home/dargor/contrib/atari-py/atari_py/ale_interface/build/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "/usr/bin/cmake" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  but the new evaluation rules produce:

    '
    IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
      MESSAGE(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
    ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
    
    FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
    STRING(REGEX REPLACE "\n" ";" files "${files}")
    FOREACH(file ${files})
      MESSAGE(STATUS "Uninstalling "$ENV{DESTDIR}${file}"")
      IF(EXISTS "$ENV{DESTDIR}${file}")
        EXEC_PROGRAM(
          "@CMAKE_COMMAND@" ARGS "-E remove "$ENV{DESTDIR}${file}""
          OUTPUT_VARIABLE rm_out
          RETURN_VALUE rm_retval
          )
        IF(NOT "${rm_retval}" STREQUAL 0)
          MESSAGE(FATAL_ERROR "Problem when removing "$ENV{DESTDIR}${file}"")
        ENDIF(NOT "${rm_retval}" STREQUAL 0)
      ELSE(EXISTS "$ENV{DESTDIR}${file}")
        MESSAGE(STATUS "File "$ENV{DESTDIR}${file}" does not exist.")
      ENDIF(EXISTS "$ENV{DESTDIR}${file}")
    ENDFOREACH(file)
    '

  Using the old result for compatibility since the policy is not set.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/dargor/contrib/atari-py/atari_py/ale_interface/build
make[1]: Entering directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[2]: Entering directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[3]: Entering directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[3]: Leaving directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[3]: Entering directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
[  0%] Building C object CMakeFiles/ale-c-lib.dir/src/emucore/unzip.c.o
[  2%] Building CXX object CMakeFiles/ale-c-lib.dir/src/emucore/Cart3E.cxx.o
[  2%] Building CXX object CMakeFiles/ale-c-lib.dir/src/emucore/Cart2K.cxx.o
[  2%] Building CXX object CMakeFiles/ale-c-lib.dir/src/emucore/Cart3F.cxx.o
In file included from /home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c:13:0:
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:114:45: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
                                             ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:127:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern unzFile ZEXPORT unzOpen OF((const char *path));
                                ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:138:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzClose OF((unzFile file));
                             ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:145:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
                                     ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:153:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGetGlobalComment OF((unzFile file,
                                        ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:166:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
                                     ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:172:36: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGoToNextFile OF((unzFile file));
                                    ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:179:34: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzLocateFile OF((unzFile file,
                                  ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:192:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
                                          ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:218:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
                                       ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:224:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
                                        ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:231:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
                                       ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:245:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern z_off_t ZEXPORT unztell OF((unzFile file));
                                ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:250:27: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzeof OF((unzFile file));
                           ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.h:255:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
                                          ^~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c: In function 'unzOpen':
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c:419:5: warning: implicit declaration of function 'unzGoToFirstFile' [-Wimplicit-function-declaration]
     unzGoToFirstFile((unzFile)s);
     ^~~~~~~~~~~~~~~~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c: In function 'unzClose':
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c:437:9: warning: implicit declaration of function 'unzCloseCurrentFile' [-Wimplicit-function-declaration]
         unzCloseCurrentFile(file);
         ^~~~~~~~~~~~~~~~~~~
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c: At top level:
/home/dargor/contrib/atari-py/atari_py/ale_interface/src/emucore/unzip.c:479:47: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'OF'
 local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
                                               ^~
make[3]: *** [CMakeFiles/ale-c-lib.dir/build.make:375: CMakeFiles/ale-c-lib.dir/src/emucore/unzip.c.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[2]: *** [CMakeFiles/Makefile2:100: CMakeFiles/ale-c-lib.dir/all] Error 2
make[2]: Leaving directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make[1]: *** [Makefile:130: all] Error 2
make[1]: Leaving directory '/home/dargor/contrib/atari-py/atari_py/ale_interface/build'
make: *** [Makefile:4: build] Error 2
make: Leaving directory '/home/dargor/contrib/atari-py/atari_py/ale_interface'
Could not build atari-py: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '3']' returned non-zero exit status 2.. (HINT: are you sure cmake is installed? You might also be missing a library. Atari-py requires: zlib [installable as 'apt-get install zlib1g-dev' on Ubuntu].)
Traceback (most recent call last):
  File "setup.py", line 36, in <module>
    tests_require=['nose2']
  File "/home/dargor/python36/lib/python3.6/site-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/home/dargor/python36/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/home/dargor/python36/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/home/dargor/python36/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/dargor/python36/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 202, in run
    self.run_command('build')
  File "/home/dargor/python36/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/dargor/python36/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 16, in run
    subprocess.check_call(cmd)
  File "/home/dargor/python36/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '3']' returned non-zero exit status 2.

Any clue about what is going on here ?

Software versions :
gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
cmake version 3.9.6
Python 3.6.5

install fails on mac

pip install -e .
Installing collected packages: atari-py
  Found existing installation: atari-py 0.1.1
    Uninstalling atari-py-0.1.1:
      Successfully uninstalled atari-py-0.1.1
  Running setup.py develop for atari-py
    Complete output from command /Users/csh/miniconda3/bin/python -c "import setuptools, tokenize;__file__='/Users/csh/agi/atari-py/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps:
    running develop
    running egg_info
    writing atari_py.egg-info/PKG-INFO
    writing dependency_links to atari_py.egg-info/dependency_links.txt
    writing requirements to atari_py.egg-info/requires.txt
    writing top-level names to atari_py.egg-info/top_level.txt
    reading manifest file 'atari_py.egg-info/SOURCES.txt'
    writing manifest file 'atari_py.egg-info/SOURCES.txt'
    running build_ext
    Unable to execute 'make build -C atari_py/ale_interface -j 7'. HINT: are you sure `make` is installed?
    error: [Errno 2] No such file or directory: 'build/lib.macosx-10.7-x86_64-3.6': 'build/lib.macosx-10.7-x86_64-3.6'
    
    ----------------------------------------
  Rolling back uninstall of atari-py

It works if I remove the cwd parameter from https://github.com/openai/atari-py/blob/master/setup.py#L16

Publish wheels for 3.8

Hello!

This repo seems to be quite dead; but I'd love if there was prebuilt wheel for Python 3.8. It seems to build fine if you pip install; but it takes quite a long while. I tried updating the cloud build but I couldn't quite get all the scripts and states to work. I'll happily do the work as far as I can if it'll get accepted, but I can't likely make the final push for it.

ALE State clone/restore: RAM and rendered frame are not updated correctly

To dump(clone) or load(restore) underlying game state, one can use the following methods:

e_state = env.unwrapped.clone_state()    # returns a 1-D vector
env.unwrapped.restore_state(e_state)

The clone_state() and restore_state() functions are actually from gym (see atari_env.py). However it is simply calling ALE's cloneState() and decodeState().

The issue is: after restoring game state, screens and RAM entries are NOT updated. To my best of knowledge they are ONLY updated after reset() and step(). As a result, we only end up getting last frame/RAM information before reset.

Demonstration

e = make_atari('SeaquestNoFrameskip-v4')

# Initialize: 
e.reset()
for i in range(100):
    s, _, _, _ = e.step(0)  # stay, no-op

plt.imshow(s)
plt.show()

e_state = e.unwrapped.clone_state()
print("Saved state (the submarine is on the surface) :", e_state.shape)
print("RAM state: ", e.unwrapped.ale.getRAM()[:16])

print("------------------------------------\n\n")

for i in range(100):
    s, _, _, _ = e.step(5)   # go down

print("After 100 actions, now the submarine is at the floor.")

plt.imshow(s)
plt.show()

print("RAM state: ", e.unwrapped.ale.getRAM()[:16])
print("------------------------------------\n\n")


print("Now let's restore. The submarine should be on the surface")
e.unwrapped.restore_state(e_state)

s = e.render('rgb_array')         # not restored according to e_state
#s, _, _, _ = e.step(0)           # re-rendered to 1-step after e_state

plt.imshow(s)
plt.show()
print("RAM state: ", e.unwrapped.ale.getRAM()[:16])

image

One can see that the rendered frame (which is from getScreenRGB2()) is not updated. It should correspond to the observation of the dumped game state, but it is not. Same thing for RAM.

However, restoring game state itself works well. You can verify that by taking additional one environment step (e.g. e.step(0) as commented).

I believe this is an issue where we need to fix ALE C++ implementation, but for right now I am just reporting the issue. Any idea? Thanks!

Licensing for Atari ROMs

I can't find any license information for the Atari ROMs shipped in this repository.

Is there any information that could clarify this?

Thanks!

error installing the ROM

OS: ubuntu 18.04
python: python3.6.9
atari-py: 0.3.0

i tried decompressing the rom once (producing 2 zip files) and twice (producing two folders). each time i tried python -m atari_py.import_roms . after unzipping but got the same error:

copying adventure.bin from HC ROMS/BY ALPHABET (PAL)/A-G/Adventure (PAL).bin to /home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/atari_roms/adventure.bin
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/import_roms.py", line 93, in <module>
    main()
  File "/home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/import_roms.py", line 89, in main
    import_roms(args.dirpath)
  File "/home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/import_roms.py", line 78, in import_roms
    _check_zipfile(f, save_if_matches)
  File "/home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/import_roms.py", line 23, in _check_zipfile
    process_f(innerf)
  File "/home/m/miscel/rl-play/rl-baselines-zoo/venv/lib/python3.6/site-packages/atari_py/import_roms.py", line 67, in save_if_matches
    f.seek(0)
io.UnsupportedOperation: seek

help plz.

OSError: [WinError 126] The specified module could not be found

Can someone tell me what is going wrong here?

(rainbow) C:\Users\s#####\Documents\github\Rainbow>python main.py
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    import atari_py
  File "C:\Users\s#####\.conda\envs\rainbow\lib\site-packages\atari_py\__init__.py", line 1, in <module>
    from .ale_python_interface import *
  File "C:\Users\s#####\.conda\envs\rainbow\lib\site-packages\atari_py\ale_python_interface.py", line 18, in <module>
    'ale_interface/ale_c.dll'))
  File "C:\Users\s#####\.conda\envs\rainbow\lib\ctypes\__init__.py", line 442, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\s#####\.conda\envs\rainbow\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

Issues in installation on ubuntu 14.04 (x86_64)

I am trying to install atari.py from this repository. I have cmake, make and zlib1g already installed and I have pip version 19.0.2. But when I run the command
pip install -e .

I get the following error -

aishwarya@aishwarya-Precision-T1600:~/Documents/atari-py$ pip install -e .Obtaining file:///home/aishwarya/Documents/atari-py
Requirement already satisfied: numpy in /home/aishwarya/anaconda3/lib/python3.6/site-packages (from atari-py==0.1.7) (1.14.3)
Requirement already satisfied: six in /home/aishwarya/anaconda3/lib/python3.6/site-packages (from atari-py==0.1.7) (1.11.0)
Installing collected packages: atari-py
Running setup.py develop for atari-py
Complete output from command /home/aishwarya/anaconda3/bin/python -c "import setuptools, tokenize;file='/home/aishwarya/Documents/atari-py/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" develop --no-deps:
running develop
running egg_info
writing atari_py.egg-info/PKG-INFO
writing dependency_links to atari_py.egg-info/dependency_links.txt
writing requirements to atari_py.egg-info/requires.txt
writing top-level names to atari_py.egg-info/top_level.txt
reading manifest file 'atari_py.egg-info/SOURCES.txt'
writing manifest file 'atari_py.egg-info/SOURCES.txt'
running build_ext
Unable to execute 'make build -C atari_py/ale_interface -j 7'. HINT: are you sure make is installed?
error: [Errno 2] No such file or directory: 'build/lib.linux-x86_64-3.6': 'build/lib.linux-x86_64-3.6'
Command "/home/aishwarya/anaconda3/bin/python -c "import setuptools, tokenize;file='/home/aishwarya/Documents/atari-py/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" develop --no-deps" failed with error code 1 in /home/aishwarya/Documents/atari-py/

I have checked if make, cmake and zlib1g was installed. This is the result telling me that it was already installed.

aishwarya@aishwarya-Precision-T1600:/Documents/atari-py$ sudo apt-get install make
Reading package lists... Done
Building dependency tree
Reading state information... Done
make is already the newest version.
The following packages were automatically installed and are no longer required:
chromium-codecs-ffmpeg-extra libqpdf13
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 360 not upgraded.
aishwarya@aishwarya-Precision-T1600:
/Documents/atari-py$ sudo apt-get install cmake
Reading package lists... Done
Building dependency tree
Reading state information... Done
cmake is already the newest version.
The following packages were automatically installed and are no longer required:
chromium-codecs-ffmpeg-extra libqpdf13
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 360 not upgraded.
aishwarya@aishwarya-Precision-T1600:~/Documents/atari-py$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
The following packages were automatically installed and are no longer required:
chromium-codecs-ffmpeg-extra libqpdf13
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 360 not upgraded.

Visualization not working

Hi I'm trying to visualize game play using the python example from the docs. I've tried the code with and without pygame.init(), and I still don't see anything. Thanks in advance.

from random import randrange
import atari_py
import pygame

ale = atari_py.ALEInterface()
pong_path = atari_py.get_game_path('pong')

#pygame.init()

#load the rom
ale.loadROM(pong_path)
ale.setInt('random_seed', 123)

ale.setBool('display_screen', True)

legal_actions = ale.getLegalActionSet()

for episode in range(10):
total_reward = 0
while not ale.game_over():
a = legal_actions[randrange(len(legal_actions))]
# Apply an action and get the resulting reward
reward = ale.act(a);
total_reward += reward
print('Episode', episode, 'ended with score:', total_reward)
ale.reset_game()

Cannot install atari.py on RedHat enterprise server

The below are my server details:

Homebrew Ruby: 2.3.7 => /home/dhdharma/.linuxbrew/Library/Homebrew/vendor/portable-ruby/2.3.7/bin/ruby
Clang: N/A
Git: 1.8.3.1 => /bin/git
Curl: 7.29.0 => /usr/bin/curl
Java: N/A
Kernel: Linux 3.10.0-693.17.1.el7.x86_64 x86_64 GNU/Linux
OS: Red Hat Enterprise Linux Server release 7.4 (Maipo)
Host glibc: 2.17
/usr/bin/gcc: 4.8.5
glibc: 2.23
gcc: 5.5.0_4
xorg: N/A

When i try to install using
pip install --user --trusted-host pypi.org --trusted-host files.pythonhosted.org "gym[atari]"

I get the below error:
Building wheels for collected packages: atari-py
Running setup.py bdist_wheel for atari-py ... error
Complete output from command /app/ge/aiden/anaconda3/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-x2v7as8m/atari-py/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-b5rkh8lv --python-tag cp36:
running bdist_wheel
running build
make: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /bin/cc
-- Check for working C compiler: /bin/cc -- broken
CMake Error at /root/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.12/Modules/CMakeTestCCompiler.cmake:52 (message):
The C compiler

  "/bin/cc"

is not able to compile a simple test program.

It fails with the following output:

  Change Dir: /tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp

  Run Build Command:"/bin/gmake" "cmTC_d4bba/fast"
  gmake[1]: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
  /bin/gmake -f CMakeFiles/cmTC_d4bba.dir/build.make CMakeFiles/cmTC_d4bba.dir/build
  gmake[2]: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
  Building C object CMakeFiles/cmTC_d4bba.dir/testCCompiler.c.o
  /bin/cc    -o CMakeFiles/cmTC_d4bba.dir/testCCompiler.c.o   -c /tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp/testCCompiler.c
  Linking C executable cmTC_d4bba
  /root/.local/lib/python3.6/site-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d4bba.dir/link.txt --verbose=1
  /bin/cc      -rdynamic CMakeFiles/cmTC_d4bba.dir/testCCompiler.c.o  -o cmTC_d4bba
  /bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libc.so when searching for -lc
  /bin/ld: skipping incompatible //lib/libc.so when searching for -lc
  /bin/ld: skipping incompatible //usr/lib/libc.so when searching for -lc
  /bin/ld: cannot find -lc
  collect2: error: ld returned 1 exit status
  gmake[2]: *** [cmTC_d4bba] Error 1
  gmake[2]: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
  gmake[1]: *** [cmTC_d4bba/fast] Error 2
  gmake[1]: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'




CMake will not be able to correctly generate this project.

Call Stack (most recent call first):
CMakeLists.txt:2 (project)

-- Configuring incomplete, errors occurred!
See also "/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeError.log".
make: *** [build] Error 1
make: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface'
Could not build atari-py: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '47']' returned non-zero exit status 2.. (HINT: are you sure cmake is installed? You might also be missing a library. Atari-py requires: zlib [installable as 'apt-get install zlib1g-dev' on Ubuntu].)
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-x2v7as8m/atari-py/setup.py", line 36, in
tests_require=['nose2']
File "/app/ge/aiden/anaconda3/lib/python3.6/site-packages/setuptools/init.py", line 129, in setup
return distutils.core.setup(**attrs)
File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/app/ge/aiden/anaconda3/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 202, in run
self.run_command('build')
File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pip-install-x2v7as8m/atari-py/setup.py", line 16, in run
subprocess.check_call(cmd)
File "/app/ge/aiden/anaconda3/lib/python3.6/subprocess.py", line 291, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '47']' returned non-zero exit status 2.


Failed building wheel for atari-py
Running setup.py clean for atari-py
Failed to build atari-py
Installing collected packages: atari-py
Running setup.py install for atari-py ... error
Complete output from command /app/ge/aiden/anaconda3/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-x2v7as8m/atari-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-record-f95derlu/install-record.txt --single-version-externally-managed --compile --user --prefix=:
running install
running build
make: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /bin/cc
-- Check for working C compiler: /bin/cc -- broken
CMake Error at /root/.local/lib/python3.6/site-packages/cmake/data/share/cmake-3.12/Modules/CMakeTestCCompiler.cmake:52 (message):
The C compiler

    "/bin/cc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp

    Run Build Command:"/bin/gmake" "cmTC_1fbcc/fast"
    gmake[1]: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
    /bin/gmake -f CMakeFiles/cmTC_1fbcc.dir/build.make CMakeFiles/cmTC_1fbcc.dir/build
    gmake[2]: Entering directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
    Building C object CMakeFiles/cmTC_1fbcc.dir/testCCompiler.c.o
    /bin/cc    -o CMakeFiles/cmTC_1fbcc.dir/testCCompiler.c.o   -c /tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_1fbcc
    /root/.local/lib/python3.6/site-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1fbcc.dir/link.txt --verbose=1
    /bin/cc      -rdynamic CMakeFiles/cmTC_1fbcc.dir/testCCompiler.c.o  -o cmTC_1fbcc
    /bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libc.so when searching for -lc
    /bin/ld: skipping incompatible //lib/libc.so when searching for -lc
    /bin/ld: skipping incompatible //usr/lib/libc.so when searching for -lc
    /bin/ld: cannot find -lc
    collect2: error: ld returned 1 exit status
    gmake[2]: *** [cmTC_1fbcc] Error 1
    gmake[2]: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'
    gmake[1]: *** [cmTC_1fbcc/fast] Error 2
    gmake[1]: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeTmp'




  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)


-- Configuring incomplete, errors occurred!
See also "/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface/build/CMakeFiles/CMakeError.log".
make: *** [build] Error 1
make: Leaving directory `/tmp/pip-install-x2v7as8m/atari-py/atari_py/ale_interface'
Could not build atari-py: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '47']' returned non-zero exit status 2.. (HINT: are you sure cmake is installed? You might also be missing a library. Atari-py requires: zlib [installable as 'apt-get install zlib1g-dev' on Ubuntu].)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-x2v7as8m/atari-py/setup.py", line 36, in <module>
    tests_require=['nose2']
  File "/app/ge/aiden/anaconda3/lib/python3.6/site-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/app/ge/aiden/anaconda3/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in run
    return orig.install.run(self)
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/command/install.py", line 545, in run
    self.run_command('build')
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/app/ge/aiden/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/tmp/pip-install-x2v7as8m/atari-py/setup.py", line 16, in run
    subprocess.check_call(cmd)
  File "/app/ge/aiden/anaconda3/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', 'build', '-C', 'atari_py/ale_interface', '-j', '47']' returned non-zero exit status 2.

----------------------------------------

Command "/app/ge/aiden/anaconda3/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-x2v7as8m/atari-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-record-f95derlu/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-x2v7as8m/atari-py/

Exception: ROM is missing for ms_pacman, see https://github.com/openai/atari-py#roms for instructions

I am totally new to OpenAi gym, I have just installed gym and then try to make environment for
env = gym.make('MsPacman-v0') so I am getting the following error:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-21-e04adf623175> in <module>
----> 1 env = gym.make('MsPacman-v0')

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(id, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, path, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\atari\atari_env.py in __init__(self, game, 
mode, difficulty, obs_type, frameskip, repeat_action_probability, full_action_space)

~\Anaconda3\envs\env_project\lib\site-packages\atari_py\games.py in get_game_path(game_name)
 18     path = os.path.join(_games_dir, game_name) + ".bin"
 19     if not os.path.exists(path):
---> 20         raise Exception('ROM is missing for %s, see https://github.com/openai/atari-py#roms 
for instructions' % (game_name,))
 21     return path
 22 

Exception: ROM is missing for ms_pacman, see https://github.com/openai/atari-py#roms for instructions

After this I also tried to find the solution on the web and download the ROMs and extracted in a folder then hit the command python -m atari_py.import_roms <path where ROMs downloaded>, after running this command I am also getting following error

(env_project) C:\Users\ME>python -m atari_py.import_roms C:\Users\ME\Downloads\roms_folder\

copying adventure.bin from HC ROMS/BY ALPHABET (PAL)/A-G/Adventure (PAL).bin to 
C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\atari_roms\adventure.bin
Traceback (most recent call last):
File "C:\Users\ME\Anaconda3\envs\env_project\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 93, 
in <module>
main()
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 89, 
in main
import_roms(args.dirpath)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 78, 
in import_roms
_check_zipfile(f, save_if_matches)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 23, 
in _check_zipfile
process_f(innerf)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 67, 
in save_if_matches
f.seek(0)
io.UnsupportedOperation: seek

I don't know what I am doing wrong. Thank in advance.

How to save atari screen images?

I am trying to save the atari screen images by doing

import gym
env = gym.make('Breakout-v0')
env.reset()
env.env.ale.saveScreenPNG('test_image.png')

I also tried changing the last line to
env.env.ale.saveScreenPNG('test_image')

but the function doesn't seem to take a string input. The input for the function says it should be a filename, which I would have expected should be a string, but it seems that I'm mistaken. How can I save image data from atari game screens with gym?

Thank you for the help!

Unable to Use; Basic Steps?

I fear I'm being very foolish here but my understanding is that this is a packaging up of ale_python_interface. So I have done the install (on Mac):

pip install atari-py

Then, from a Python prompt, I tried:

from ale_python_interface import ALEInterface

That does not work. (No module named "ale_python_interface".) So then I cloned the repo and tried the build:

python setup.py install

And I get the same problem. There are no errors during either installation approach. I've also done the export of PYTHONPATH and, again, same error.

So I guess my question is a simple one: how do you actually get this to work? Or, better, what am I doing wrong (i.e., what steps am I missing?)

Breakout action space decreased

Hi,

I'm a bit curious as to why the Breakout action space was decreased from 6 to 4. I'm doing some research in transfer/multitask learning and this was a breaking change for me. While maybe this is the desired choice down the line, I'd like to suggest restoring it such that several environments with similar goals (breakout/pong) have the same action spaces. In any case, I'm opening this issue to see if there was some reasoning behind it.

Thanks.

OSError: [WinError 126] Cannot find the specified module

Trying to get Pong to work following https://github.com/dhruvp/atari-pong/blob/master/me_pong.py. I run env = gym.make('Pong-v0') and this error appears:

env = gym.make('Pong-v0')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\registration.py", line 156, in make
    return registry.make(id, **kwargs)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\registration.py", line 101, in make
    env = spec.make(**kwargs)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\registration.py", line 72, in make
    cls = load(self.entry_point)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\registration.py", line 17, in load
    mod = importlib.import_module(mod_name)
  File "C:\Users\GuCa\AppData\Local\Programs\Python\Python37-32\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\atari\__init__.py", line 1, in <module>
    from gym.envs.atari.atari_env import AtariEnv
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.4\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\gym\envs\atari\atari_env.py", line 9, in <module>
    import atari_py
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.4\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\atari_py\__init__.py", line 1, in <module>
    from .ale_python_interface import *
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.4\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\GuCa\PycharmProjects\Pong\venv\lib\site-packages\atari_py\ale_python_interface.py", line 18, in <module>
    'ale_interface/ale_c.dll'))
  File "C:\Users\GuCa\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 442, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\GuCa\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] Cannot find the specified module

No errors when running pip install "gym[atari]" inside "...\projectFolder\atari.py"
Any suggestions? Please explain like i'm five

Cannot install atari-py on Linux + Python 2.7 env

Steps to reproduce:

conda create -n py27 python=2.7
conda activate py27
pip install atari-py

Expected:
atari-py gets installed on Ubuntu 16.04 x86_64 within a conda python 2.7 environment

Actual:

    creating build/lib.linux-x86_64-2.7/atari_py/tests
    copying atari_py/tests/test_smoke.py -> build/lib.linux-x86_64-2.7/atari_py/tests
    copying atari_py/tests/__init__.py -> build/lib.linux-x86_64-2.7/atari_py/tests
    running build_ext
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-hKIyhH/atari-py/setup.py", line 47, in <module>
        tests_require=['nose2']
      File "/miniconda3/envs/py27/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/miniconda3/envs/py27/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/miniconda3/envs/py27/lib/python2.7/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/command/install.py", line 563, in run
        self.run_command('build')
      File "/miniconda3/envs/py27/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/miniconda3/envs/py27/lib/python2.7/distutils/command/build.py", line 127, in run
        self.run_command(cmd_name)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/miniconda3/envs/py27/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-hKIyhH/atari-py/setup.py", line 20, in run
        os.makedirs(cwd, exist_ok=True)
    TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
    ----------------------------------------
ERROR: Command "/miniconda3/envs/py27/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-hKIyhH/atari-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-record-wThLEi/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-hKIyhH/atari-py/

Unable to load ROMs with ale.loadROM()

I followed the directions in the readme for downloading, unrarring/unzipping, and loading the rom files. I can see them in .local/lib/python3.8/site-packages/atari_py/atari_roms.

However, ale.loadROM() is unable to find the ROM file:

>>> import atari_py
>>> ale = atari_py.ALEInterface()
>>> ale.loadROM("pong.bin")
ROM file pong.bin not found.

My C++ is a bit rusty, but looks like this might be wanting a full path? https://github.com/openai/atari-py/blob/master/atari_py/ale_interface/src/ale_interface.cpp#L124

I wasn't able to get the solution for the gym to work for just the base library.

The clone/restoreState() actually includes the pseudorandomness of Atari.

The document said that clone/restoreState() doesn't include pseudorandomness. However, the fact is that clone/restoreState() doesn't include the pseudorandomness of repeat_action, but it includes the pseudorandomness of Atari.

The code to verify above fact is as below:

import numpy as np
import atari_py

test = 'loadROM'
# test = 'restoreState'

frame_skip = 4
bunch = 200
sequence = 500

def main():
    result = {
        'name':[],
        'grouped_num':[],
        'distribution':[],
    }

    # game_list = ['air_raid-n', 'alien', 'amidar', 'assault', 'asterix', 'asteroids', 'atlantis']
    # game_list = ['bank_heist', 'battle_zone', 'beam_rider', 'berzerk-n', 'bowling', 'boxing', 'breakout', 'carnival-n']
    # game_list = ['centipede', 'chopper_command', 'crazy_climber', 'demon_attack', 'double_dunk']
    # game_list = ['elevator_action-n', 'enduro', 'fishing_derby', 'freeway', 'frostbite', 'gopher', 'gravitar']
    # game_list = ['hero', 'ice_hockey', 'jamesbond', 'journey_escape-n', 'kangaroo', 'krull', 'kung_fu_master']
    # game_list = ['montezuma_revenge-n', 'ms_pacman', 'name_this_game', 'phoenix-n', 'pitfall-n', 'pong', 'pooyan-n']
    # game_list = ['private_eye', 'qbert', 'riverraid', 'road_runner', 'robotank', 'seaquest', 'skiing-n']
    # game_list = ['solaris-n', 'space_invaders', 'star_gunner', 'tennis', 'time_pilot', 'tutankham', 'up_n_down']
    # game_list = ['venture', 'video_pinball', 'wizard_of_wor', 'yars_revenge-n', 'zaxxon']

    game_list = ['pong', 'assault','ms_pacman']

    for game in game_list:

        if '-n' in game:
            '''games that are not in the nature DQN list'''
            continue

        game_path = atari_py.get_game_path(game)

        env_father = atari_py.ALEInterface()
        env_father.setFloat('repeat_action_probability'.encode('utf-8'), 0.0)
        env_father.setInt(b'random_seed', 3)
        env_father.loadROM(game_path)
        env_father.reset_game()

        if test in ['restoreState']:
            state_after_reset = env_father.cloneState()

        '''generate a sequence of actions'''
        action_sequence = np.random.randint(
            len(env_father.getMinimalActionSet()),
            size = sequence,
        )

        bunch_obs = []
        distribution = []
        samples = []
        for bunch_i in range(bunch):

            env_temp = atari_py.ALEInterface()
            env_temp.setFloat('repeat_action_probability'.encode('utf-8'), 0.0)
            env_temp.setInt(b'random_seed', bunch_i)
            if test in ['loadROM']:
                env_temp.loadROM(game_path)
                env_temp.reset_game()
            elif test in ['restoreState']:
                env_temp.loadROM(game_path) # restoreState without calling loadROM first will cause Segmentation fault (core dumped)
                env_temp.restoreState(state_after_reset)

            # just to make sure
            env_temp.setFloat('repeat_action_probability'.encode('utf-8'), 0.0)
            env_temp.setInt(b'random_seed', bunch_i)

            for sequence_i in range(sequence):
                for frame_skip_i in range(frame_skip):
                    env_temp.act(
                        env_father.getMinimalActionSet()[
                            action_sequence[sequence_i]
                        ]
                    )
                if env_temp.game_over():
                    env_temp.reset_game()

            obs = env_temp.getScreenRGB2()

            samples += [obs]
            found_at_bunch = -1
            if_has_identical_one = False
            max_value = 0
            for bunch_obs_i in range(len(bunch_obs)):
                obs_in_bunch = bunch_obs[bunch_obs_i]
                max_value = np.max(
                    np.abs(
                        obs-obs_in_bunch
                    )
                )
                if max_value < 1:
                    found_at_bunch = bunch_obs_i
                    if_has_identical_one = True
                    distribution[found_at_bunch] += 1
                    break

            if if_has_identical_one is False:
                bunch_obs += [obs]
                distribution += [1]

        grouped_num = len(bunch_obs)
        print('game:{} grouped_num:{} distribution:{}'.format(
            game,
            grouped_num,
            distribution,
        ))

if __name__ == "__main__":
    main()

Specifically, when set test = 'loadROM', it tests the stochasticity produced by

setInt(b'random_seed')
loadROM()

The results are:

game:pong grouped_num:1 distribution:[200]
game:assault grouped_num:57 distribution:[4, 4, 6, 3, 8, 9, 2, 5, 3, 2, 5, 5, 5, 4, 5, 4, 2, 4, 6, 3, 1, 4, 1, 5, 5, 1, 2, 1, 3, 6, 3, 4, 2, 3, 5, 3, 4, 6, 3, 5, 4, 3, 2, 2, 3, 4, 2, 1, 3, 4, 3, 1, 2, 2, 5, 2, 1]
game:ms_pacman grouped_num:1 distribution:[200]

When set test = 'restoreState', it tests the stochasticity produced by clone/restoreState(). The results are:

game:pong grouped_num:1 distribution:[200]
game:assault grouped_num:1 distribution:[200]
game:ms_pacman grouped_num:1 distribution:[200]

As you can see, we set repeat_action_probability to zero all the time since we do not care about this kind of stochasticity. The results shows that clone/restoreState() actually includes the pseudorandomness of Atari. Thus, we actually do not have a function that really exclude the pseudorandomness so that we can use it for planning.

Any ideas? Is there any way we can have a function that clone/restore state of Atari without pseudorandomness so that we can use it for planning?

Many thanks for everyone's effort on this repo!

missing package_data.txt on source code

Trying to pip install atari-py 0.23 on a python 2.7 conda environment leads to the following error:

2019-07-02T03:41:24.2303198Z Using cached https://files.pythonhosted.org/packages/fc/a4/551d18c9178094a698aa5244ee52164914d65bedb68913d357d1033a58cc/atari-py-0.2.3.tar.gz
2019-07-02T03:41:24.4669762Z Complete output from command python setup.py egg_info:
2019-07-02T03:41:24.4673356Z Traceback (most recent call last):
2019-07-02T03:41:24.4674086Z File "", line 1, in
2019-07-02T03:41:24.4675307Z File "/tmp/pip-build-77t_o8/atari-py/setup.py", line 8, in
2019-07-02T03:41:24.4676866Z with open(os.path.join(os.path.dirname(file), 'atari_py', 'package_data.txt')) as f:
2019-07-02T03:41:24.4677641Z IOError: [Errno 2] No such file or directory: '/tmp/pip-build-77t_o8/atari-py/atari_py/package_data.txt'

After downloading https://files.pythonhosted.org/packages/fc/a4/551d18c9178094a698aa5244ee52164914d65bedb68913d357d1033a58cc/atari-py-0.2.3.tar.gz, I confirmed that Atari_py/package_data.txt is missing

That started happening on June 28th. Was the python 2.7 wheel package removed on that date? That could explain why this started to happen: a pre compiled wheel package was no longer found for python 2.7, leading the build from source to take place.

Compatilbility with Python 3.8?

Is atari-py compatible with Python 3.8? I'm trying to install it on a MacOS (Catalina) with Python 3.8 installed, but keep getting errors.

Any help on this would be appreciated.

Thank you.

pip install atari-py==0.2.0 failed

On https://pypi.org/project/atari-py/ version 0.2.0 seems available.
But, on ubuntu 18.04 when executing the command : pip install atari-py==0.2.0
The following error occurs :

ERROR: Could not find a version that satisfies the requirement atari-py==0.2.0 (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.7, 0.0.8, 0.0.9, 0.0.10, 0.0.11, 0.0.12, 0.0.13, 0.0.14, 0.0.15, 0.0.16, 0.0.17, 0.0.18, 0.0.19, 0.0.20, 0.0.21, 0.1.0, 0.1.1, 0.1.2, 0.1.4, 0.1.6, 0.1.7, 0.1.14)

Also, the installation of atary-py version 0.1.15 seems not available too

Problem in Google colab with "Breakout" game in OpenAI Gym (ROM missing)

Browser: Chrome

Creating env for "Breakout" game from OpenAI Gym is giving problem in Googlw colab. Following is the error message that pops up.

Note: This problem seems to be a recent issue. It was a working code till 2 days back and suddenly started giving problems.

############################################################################################

Exception Traceback (most recent call last)
in ()
1 if name == 'main':
2
----> 3 env = gym.make('Breakout-v0')
4 load_checkpoint = False
5 agent = Agent(gamma=0.99, epsilon=1.0, alpha=0.000025, input_dims=(180,160,4),

4 frames
/usr/local/lib/python3.7/dist-packages/atari_py/games.py in get_game_path(game_name)
18 path = os.path.join(_games_dir, game_name) + ".bin"
19 if not os.path.exists(path):
---> 20 raise Exception('ROM is missing for %s, see https://github.com/openai/atari-py#roms for instructions' % (game_name,))
21 return path
22

Exception: ROM is missing for breakout, see https://github.com/openai/atari-py#roms for instructions

Segfault if another library has created a graphics pipe

This is such a niche issue I'm not expecting a fix, it's just a flag to anyone who Googles up 'atari-py segfault'.

Running Ubuntu 18.04 headless with Xvfb and ataripy 0.1.15, if another library - like panda3d - creates a graphics pipeline, creating an Atari environment will segfault

import gym
from panda3d.core import GraphicsPipeSelection

if __name__ == '__main__':
    GraphicsPipeSelection.get_global_ptr().make_default_pipe()
    gym.make('PongNoFrameskip-v4')

Using faulthandler, it shows up as

Current thread 0x00007f78248a5740 (most recent call first):
  File "/opt/conda/lib/python3.7/site-packages/atari_py/ale_python_interface.py", line 313 in __del__
  File "/code/scripts/segfault.py", line 6 in <module>
  File "/opt/conda/lib/python3.7/runpy.py", line 85 in _run_code
  File "/opt/conda/lib/python3.7/runpy.py", line 193 in _run_module_as_main
Segmentation fault (core dumped)

My workaround for now is don't create a graphics pipe and and Atari env. Presumably there's some underlying display resource that's being contested/badly managed.

Breakout doesn't end after losing the game

Breakout

As mentioned in the title and demonstrated by the gif, after the paddle misses the ball’s rebound, the game still goes on. I check done returned by env.step(action) and it remains false. Is this normal? I am using BreakoutNoFrameskip-v0 and the code I use is as follows,

def eval_policy(policy, env, seed, eval_episodes=1):
    
    avg_reward = 0.
    for _ in range(eval_episodes):
        state, done = env.reset(), False
        while not done:
            env.env.render()
            action = policy.select_action(np.array(state), eval=True)
            state, reward, done, _ = env.step(action)
            avg_reward += reward
            # sleep(0.02)
            
        print(f"Evaluation over {steps} steps: {episode_reward:.3f}")

    avg_reward /= eval_episodes

    print("---------------------------------------")
    print(f"Evaluation over {eval_episodes} episodes: {avg_reward:.3f}")
    print("---------------------------------------")
    return avg_reward

where env is produced by,

# Create environment, add wrapper if necessary and create env_properties
def make_env(env_name, atari_preprocessing):
	env = gym.make(env_name)
	
	is_atari = gym.envs.registry.spec(env_name).entry_point == 'gym.envs.atari:AtariEnv'
	env = AtariPreprocessing(env, **atari_preprocessing) if is_atari else env

	state_dim = (
		atari_preprocessing["state_history"], 
		atari_preprocessing["frame_size"], 
		atari_preprocessing["frame_size"]
	) if is_atari else env.observation_space.shape[0]

	return (
		env,
		is_atari,
		state_dim,
		env.action_space.n
	)

I am using atari-py==0.2.6 and gym==0.17.2.

Building requires zlib1g-dev, not just zlib1g

This isn't stated in the readme, and without the dev version installed you get the following incredibly opaque build error:

/home/justinkterry/Documents/atari-py/atari_py/ale_interface/src/common/ScreenExporter.cpp:18:10: fatal error: zlib.h: No such file or directory
 #include <zlib.h>
          ^~~~~~~~
compilation terminated.

You should at least update the readme file to reflect this, and ideally include a check with a useful error message during building

Random seed parameter

When I change the parameter random_seed (I am using atari-py 0.1.1), atari_py.ALEInterface().setInt('random_seed', new_seed), it actually doesn't change anything (at least on game space_invaders), my agent without any randomness (I set repeat_action_probability to 0) will always reach the same score over different random_seed.
I would expect the Alien to shoot at different time and then lead to different runs, am I wrong?

Rom is missing, Fix that please X-X

Exception Traceback (most recent call last)
in ()
1 def create_pong_env():
2 return gym.make("Pong-v0", frameskip=5)
----> 3 env = create_pong_env()
4 env.seed(1); # for reproducibility

5 frames
/usr/local/lib/python3.7/dist-packages/atari_py/games.py in get_game_path(game_name)
18 path = os.path.join(_games_dir, game_name) + ".bin"
19 if not os.path.exists(path):
---> 20 raise Exception('ROM is missing for %s, see https://github.com/openai/atari-py#roms for instructions' % (game_name,))
21 return path
22

Exception: ROM is missing for pong, see https://github.com/openai/atari-py#roms for instructions

Unable to import ROMS

Hello,

I followed the instructions to import ROMS, however, I received this message:

python -m atari_py.import_roms ./Roms/ROMS
Traceback (most recent call last):
File "/Users/rosen/opt/anaconda3/envs/rl_p2/lib/python3.5/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/Users/rosen/opt/anaconda3/envs/rl_p2/lib/python3.5/runpy.py", line 153, in _get_module_details
code = loader.get_code(mod_name)
File "", line 799, in get_code
File "", line 759, in source_to_code
File "", line 222, in _call_with_frames_removed
File "/Users/rosen/opt/anaconda3/envs/rl_p2/lib/python3.5/site-packages/atari_py/import_roms.py", line 57
name = f"patched version of {f.name}"
^
SyntaxError: invalid syntax

I don't know why there has a SyntaxError. Do you know what should I do to fix this?

Thanks.

atari-py is based on old version of ALE

The code of ALE, which is included in atari-py package is based on an old version of ALE.
One difference I observed is in the file ale_interface/src/games/supported/Breakout.cpp, which was changed in ALE nearly a year ago, but I am sure there are more discrepancies.
I feel hesitant to change this one, as then the two repos'll diverge and things will get only worse.
Could you think of the way to keep the two repositories synchronized? (e.g. by including ALE as a git submodule and possibly updating it every half a year or so)

Bug when reaching max score in asterix

When my agent reach 999500 and take a last bonus which should lead him to 1000000 (the max score), it obtains a reward of -999500 and the game continue as usual (but the agent now got a total score of 0...).

how to install atari-py in windows?

i installed gnuwin, cmake for make, cmake command.

make: Entering directory `C:/Users/ADMINI~1/AppData/Local/Temp/pip-build-i8domwa1/atari-py/atari_py/ale_interface'
mkdir -p build && cd build && cmake .. && make -j4
-- Building for: Visual Studio 14 2015
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:2 (project):
No CMAKE_C_COMPILER could be found.

i can't find this problem's solution.

i can't inglish well. sorry. :3

Is it possible to get the MDP from each game ?

Hi all (and Sorry if 'Issues' is not the appropriate place for this question)
For the purpose of some IRL, I need to have the transition matrix of these games. Using the RAM version, I have 12825618 maximum of possible states. However, since the game is always determined by the initial state (and the future actions), can't I just sample all the initial states (and obtain the MDP from this) ? If yes how do I sample all the initial states ? Or do you have an advice on a simple (and efficient because I doubt the first one is) way to achieve my goal ?
Thanks in advance for your response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.