在 virtualenv 中安装 gym[atari]
Installing gym[atari] in a virtualenv
我在 virtualenv 中安装 gym-atari 时遇到问题。据我所知,看起来 问题出在 zlib,但系统上安装了 zlib(cmake 也是如此)。谁有想法?这是在 Gentoo 系统上,它的价值:
(tensorflow)alaya ~ # pip install gym[atari]
Requirement already satisfied: gym[atari] in /opt/tensorflow/lib/python2.7/site-packages
Requirement already satisfied: six in /usr/lib64/python2.7/site-packages (from gym[atari])
Requirement already satisfied: requests>=2.0 in /usr/lib64/python2.7/site-packages (from gym[atari])
Requirement already satisfied: pyglet>=1.2.0 in /opt/tensorflow/lib/python2.7/site-packages (from gym[atari])
Requirement already satisfied: numpy>=1.10.4 in /opt/tensorflow/lib/python2.7/site-packages (from gym[atari])
Requirement already satisfied: PyOpenGL; extra == "atari" in /usr/lib64/python2.7/site-packages (from gym[atari])
Collecting atari-py>=0.0.17; extra == "atari" (from gym[atari]) Using cached atari-py-0.0.18.tar.gz
Requirement already satisfied: Pillow; extra == "atari" in /usr/lib64/python2.7/site-packages (from gym[atari])
Building wheels for collected packages: atari-py
Running setup.py bdist_wheel for atari-py ... error
Complete output from command /opt/tensorflow/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-Xd0Ga4/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/tmpCxn1j3pip-wheel- --python-tag cp27:
.
.
.
[ 9%] Building CXX object CMakeFiles/ale-bin.dir/src/common/display_screen.cpp.o
In file included from /tmp/pip-build-Xd0Ga4/atari-py/atari_py/ale_interface/src/emucore/unzip.c:13:0: /tmp/pip-build-Xd0Ga4/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,
^
/tmp/pip-build-Xd0Ga4/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));
^
/tmp/pip-build-Xd0Ga4/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));
. . .
有什么想法吗?我唯一的猜测是 zlib 没有以某种方式被拉入 virtualenv???也许它甚至不是 zlib?
O.k。所以这最终是一个 Gentoo 问题——我会 post 解决方案以防其他人有它。
按照说明 here(使用 atari-py 而不是 netifaces),我获得了一个可以编辑的包版本。然后我将以下内容添加到 /tmp/atari-py-0.0.18/atari_py/ale_interface/src/emucore/unzip.h:
的顶部
/* Gentoo removed OF from their copy of zconf.h (https://bugs.gentoo.org/show_bug.cgi?id=383179) */
/* but our copy of minizip needs it. */
#ifndef OF
#define OF(args) args
#endif
然后 运行 点安装。来自 /tmp/atari-py-0.0.18 成功了。
对于将来的任何人,如果选择的答案不能解决您的问题,请确保您已安装 cmake
。 sudo apt install cmake
在 ubuntu/debian。
我在 virtualenv 中安装 gym-atari 时遇到问题。据我所知,看起来 问题出在 zlib,但系统上安装了 zlib(cmake 也是如此)。谁有想法?这是在 Gentoo 系统上,它的价值:
(tensorflow)alaya ~ # pip install gym[atari]
Requirement already satisfied: gym[atari] in /opt/tensorflow/lib/python2.7/site-packages
Requirement already satisfied: six in /usr/lib64/python2.7/site-packages (from gym[atari])
Requirement already satisfied: requests>=2.0 in /usr/lib64/python2.7/site-packages (from gym[atari])
Requirement already satisfied: pyglet>=1.2.0 in /opt/tensorflow/lib/python2.7/site-packages (from gym[atari])
Requirement already satisfied: numpy>=1.10.4 in /opt/tensorflow/lib/python2.7/site-packages (from gym[atari])
Requirement already satisfied: PyOpenGL; extra == "atari" in /usr/lib64/python2.7/site-packages (from gym[atari])
Collecting atari-py>=0.0.17; extra == "atari" (from gym[atari]) Using cached atari-py-0.0.18.tar.gz
Requirement already satisfied: Pillow; extra == "atari" in /usr/lib64/python2.7/site-packages (from gym[atari])
Building wheels for collected packages: atari-py
Running setup.py bdist_wheel for atari-py ... error
Complete output from command /opt/tensorflow/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-Xd0Ga4/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/tmpCxn1j3pip-wheel- --python-tag cp27:
.
.
.
[ 9%] Building CXX object CMakeFiles/ale-bin.dir/src/common/display_screen.cpp.o
In file included from /tmp/pip-build-Xd0Ga4/atari-py/atari_py/ale_interface/src/emucore/unzip.c:13:0: /tmp/pip-build-Xd0Ga4/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,
^
/tmp/pip-build-Xd0Ga4/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));
^
/tmp/pip-build-Xd0Ga4/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));
. . .
有什么想法吗?我唯一的猜测是 zlib 没有以某种方式被拉入 virtualenv???也许它甚至不是 zlib?
O.k。所以这最终是一个 Gentoo 问题——我会 post 解决方案以防其他人有它。
按照说明 here(使用 atari-py 而不是 netifaces),我获得了一个可以编辑的包版本。然后我将以下内容添加到 /tmp/atari-py-0.0.18/atari_py/ale_interface/src/emucore/unzip.h:
的顶部/* Gentoo removed OF from their copy of zconf.h (https://bugs.gentoo.org/show_bug.cgi?id=383179) */
/* but our copy of minizip needs it. */
#ifndef OF
#define OF(args) args
#endif
然后 运行 点安装。来自 /tmp/atari-py-0.0.18 成功了。
对于将来的任何人,如果选择的答案不能解决您的问题,请确保您已安装 cmake
。 sudo apt install cmake
在 ubuntu/debian。