简体   繁体   English

在virtualenv中安装Gym [atari]

[英]Installing gym[atari] in a virtualenv

I'm having trouble installing gym-atari in a virtualenv. 我在virtualenv中安装Gym-atari时遇到问题。 From what I can tell, it looks like the issue is with zlib, but zlib is installed on the system (so is cmake). 据我所知,问题似乎出在zlib上,但zlib已安装在系统上(cmake也是如此)。 Anyone have any ideas? 有人有想法么? This is on a Gentoo system, for what it's worth: 这是在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)); 
. . .

Any ideas? 有任何想法吗? My only guess is that somehow zlib isn't getting pulled into the virtualenv??? 我唯一的猜测是zlib不会以某种方式进入virtualenv? Maybe it's not even zlib though? 也许甚至不是zlib?

Ok, so this was in the end a Gentoo issue -- I'll post the solution in case anyone else has it. 好的,这最终是一个Gentoo问题-我将发布解决方案,以防其他人使用。

Following the instructions here (with atari-py instead of netifaces) I was able to get a version of the package I could edit. 按照此处的说明(使用atari-py而不是netifaces),我可以获得可以编辑的软件包的版本。 I then added the following to the top of /tmp/atari-py-0.0.18/atari_py/ale_interface/src/emucore/unzip.h: 然后,我将以下内容添加到/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

then running pip install . 然后运行pip install。 from /tmp/atari-py-0.0.18 did the trick. 来自/tmp/atari-py-0.0.18的技巧。

For anyone in the future, if the chosen answer does not solve your problem, make sure you have cmake installed. 对于以后的任何人,如果选择的答案不能解决您的问题,请确保已安装cmake sudo apt install cmake on ubuntu/debian. sudo apt install cmake在ubuntu / debian上sudo apt install cmake

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM