python trivia

개요

python 이해도를 높이기 위한 목적으로,

잘 만들어진 library 소스코드(tensorflow)를 보다가 특기할 만한 짧은 내용들을 간략히 소개한다.

 

__future__

compiler 지시자로 동작한다.

하위 호환성이 없는 기능을 미리 사용하기 위함이다.

링크 : PEP 236 – Back to the __future__

링크 : future statement

 

__all__

init.py 내에서 작성하는 variable 이다.

package 내의 공개 가능한 submodule 의 범위를 한정하기 위함이다.

복잡한 프로젝트의 구조와 별개로 사용자 인터페이스를 단순하게 하고 싶을 때 사용할 수도 있다.


# tensorflow\__init__.py

# tensorflow.python 패키지 하위의 submodule 들을 사용자가 접근할 때

# tensorflow.xxx 으로 사용 가능하도록 한다.

from tensorflow.python import *

링크 : importing * from a package

 

pylint

정적분석 도구다.

PEP8 스타일 가이드를 따르도록 도와준다.

pylint: 로 시작하는 주석으로  message 를 제어할 수 있다.

# pylint: disable=wildcard-import
from tensorflow.python import *
# pylint: enable=wildcard-import

링크 : PEP8 style guilde for python code

 

SWIG

python – native code wrapper 다.

같은 목적의 도구로 boost::python 가 있다.

둘 다 써보지 않아서 잘은 모르겠지만

SWIG 는 별도의 인터페이스 file 을 작성하여야 하는 번거로움이 있는 대신

python / tcl / perl / java /c# 등 다양한 타겟으로 인터페이스가 가능하다.

boost 빠인 나로선 boost::python 쪽에 더 마음이 간다.

openAI gym 을 windows 에서 실행하는 방법

윈도우에서 openAI gym 환경을 구성하는 가장 쉬운 방법을 공유한다.
cygwin 이나 mingw 보다는 windows10 에 포함된 linux subsystem 사용을 권한다.

준비물

dependencies 설치

# dependencies 인스톨
sudo apt-get update
sudo apt-get install cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev libboost-all-dev libsdl2-dev swig git g++

# anaconda 로 python3 설치
wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh
./Anaconda3-4.3.0-Linux-x86_64.sh

# graphic driver 설치
sudo apt-get install nvidia-319 nvidia-settings-319 nvidia-prime

export DISPLAY=:0

 

vcxsrv 설치

https://sourceforge.net/projects/vcxsrv/

 

gym 설치

pip 로 하던 git 으로 하던 각자 알아서

pip install gym
pip install gym['atari']

 

gym 예제 코드 실행

import gym
env = gym.make('Copy-v0')
env.reset()
env.render()