rlcode / reinforcement-learning-kr

[파이썬과 케라스로 배우는 강화학습] 예제
MIT License
371 stars 228 forks source link

policy_iteration.py 실행 시 오류 메세지가 나옵니다. 어디가 잘못되었는지 살펴봐 주세요 #11

Closed mkilyu17a closed 6 years ago

mkilyu17a commented 6 years ago

피씨에 우분투 깔아서 책 74페이지의 RLCode 깃허브 저장소의 설치 방법과 같이pip install -r requirements.txt 를 수행하여 풀그램 설치까지는 완료하였습니다.

그 상태에서 python policy_iteration.py를 실행 시키니 아래와 같은 오류가 나네요. python은 2.7.12버전입니다. /workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration$ python policy_iteration.py Traceback (most recent call last): File "policy_iteration.py", line 3, in from environment import GraphicDisplay, Env File "/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration/environment.py", line 8 SyntaxError: Non-ASCII character '\xed' in file /workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration/environment.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

혹시 해서 python3로 실행하여 보니, 아래와 같이 에러 표시가 됩니다. python3 버전은 3.5.2입니다.

mikil17a@PC2linux:/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration$ python3 policy_iteration.py Traceback (most recent call last): File "/usr/lib/python3.5/tkinter/init.py", line 36, in import _tkinter ImportError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "policy_iteration.py", line 3, in from environment import GraphicDisplay, Env File "/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration/environment.py", line 1, in import tkinter as tk File "/usr/lib/python3.5/tkinter/init.py", line 38, in raise ImportError(str(msg) + ', please install the python3-tk package') ImportError: No module named '_tkinter', please install the python3-tk package mikil17a@PC2linux:/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration$ ^C mikil17a@PC2linux:/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration$ ^C mikil17a@PC2linux:/workspace/reinforcement-learning-kr/1-grid-world/1-policy-iteration$

어떻게 하면 실행 할 수 있을지 가이드 부탁드립니다.

graybat21 commented 6 years ago

우선 파이썬은 3.5 이상 버전을 쓰시길 권합니다. tkinter 는 gui 연결을 해주는 라이브러리 인데 파이썬2.7, 3.5에 적용되는 tkinter가 따로 있는것 같습니다. 밑에서 4번째줄에 깔라는 메시지도 나오네요.

ImportError: No module named '_tkinter', please install the python3-tk package

현재 tkinter 가 2.7에서만 작동하는 거여서 새로 버전 3.x에 적용되는 tkinter 를 깔아보셔보세요. 확실치는 않지만 다음 명령어로 깔아보셔요

sudo apt-get install python3-tk

mkilyu17a commented 6 years ago

우분투를 깔면 Python 2.7버전과 Python 3.5 버전이 default로 깔려 있다고 합니다. 말씀하신 대로 python3-tk를 깔고 Python3로 실행하여 보니 이번에는 nummy가 설치되어 있지 않다고 나오더라구요. 분명히 sudo pip install -r requirements.txt를 실행하여 설치가 되어 있을 터인데 무엇이 문제일까 생각해 보다가 문뜩,

sudo pip3 install -r requirements.txt를 하니 새로 설치를 하고 이후에는 1-value-iteration을 실행할 수 있게 되었습니다. 이 점은 Web-Site에서도 변경되어야 하지 않을까 생각됩니다.

그리고, 설치하다 보니 pip3의 버전이 8.1.1인 것같은데요. $pip3 -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

pip의 버전은 9.0.1인 것 같습니다. $pip -V pip 9.0.1 from /user/miki/.local/lib/python2.7/site-packages (python 2.7)

pip3의 버전을 upgrade해야 할 것 같은데, 이 것은 어떤 명령어인지 알려 주실 수 있으신지요?

keon commented 6 years ago

말씀하신대로 python2와 python3의 pip을 구분하기 위해 pip, pip2, pip3 등으로 구별을 합니다. 사용자가 어떤 설정을 했느냐에 따라서 pip명령어가 python2의 pip을을 가리키기도 하고 python3의 pip을 가리키기도 합니다.

pip3 를 업그레이드 하기 위해선 sudo pip3 install --upgrade pip 를 하시면 될것 같습니다. (참고: https://stackoverflow.com/questions/38613316/how-to-upgrade-pip3)

pip/pip3 구분은 파이썬을 다루는 문제이고 사용자마다 다를수 있기 때문에 언급을 하지 않았는데, 우분투 기본 파이썬에대한 참고문을 다음 업데이트에 넣어보도록 하겠습니다. 빨리 파이썬2가 도태되었으면 좋겠네요 ㅠㅠ

mkilyu17a commented 6 years ago

네, 감사합니다.