ic


오랜만에 데이터베이스 프로그래밍을 해볼려고 하는데... 삽질


"왕년에는 이 정도쯤은 문제도 아니었는데..."


오랜만에 데이터베이스 프로그래밍을 해볼려고 했는데, 우와 왕창 까먹은 자신을 보니 영화 "신라의 달밤"의 한 장면이 떠오른다. 한 때 고등학교에서 짱 먹었던 왕년의 주먹은 사라지고 일개 고등학교 체육교사가 된 차승원이 김혜수를 사이에 두고 모범생에서 조폭의 작은 두목이 된 이성재와의 대결을 위해 학교 운동장에서 체력단력을 하던 장면이 머리속에 떠오른다.

진짜 옛날엔 이 정도는 껌이었는데, 이제 다 까먹었다. 옛날에 만든 프로젝트를 뒤져봐야 겠다. 디비커넥션, 레코드셋, 커밋/롤백, 스토어드프로시저, 각종 쿼리 얘네들 다시 찾아와야 겠다.


해석적(Analytical)이라는 표현 금융공학

책을 읽다 보면 어떤 함수가
해석적(Analytical)
이라는 표현을 보는 수가 있다. 한국어인데 이해가 쉽게 안된다. 이는
이미 우리가 알고 있는 함수들의 조합으로 그 함수를 표현할 수 있다
것을 의미한다.

맞는 비유인지는 모르겠지만 곱셈을 함수로 본다면 덧셈이라는 함수를 가지고 곱셈을 표현할 수 있고, 또한 나눗셈은 뺄셈으로 표현할 수 있다.



하이투자증권 도서관 증권

오랜만에 방치하던 증권계좌를 스마트폰앱으로 찾아 보았다. 이러 저런 기능을 살펴보다가 스마트하이플러스 전자도서관이라는 게 있다. 예스24와 연계된 서비스인듯 하다. 오호~ 이거 좋은 기능이네...


그러나 막상 해볼려고 했더니... 잔고가 달랑 10만원이라...



돈 생기면 300만원 넣어봐야 겠다

껌 하나 안사먹었으면 300만원 넣어 두었을 텐데, 아쉽네요. 낼부터 적금 하나 만들어 봐야겠어요.



Uninstalling Anaconda PYTHON

Uninstalling Anaconda

To uninstall Anaconda, you can do a simple remove of the program. This will leave a few files behind, which for most users is just fine. See Option A.

If you also want to remove all traces of the configuration files and directories from Anaconda and its programs, you can download and use the Anaconda-Clean program first, then do a simple remove. See Option B.

Option A.

Use simple remove to uninstall Anaconda:

macOS–Open the Terminal.app or iTerm2 terminal application, and then remove your entire Anaconda directory, which has a name such as anaconda2 or anaconda3, by entering rm -rf ~/anaconda3
.

Option B.

Full uninstall using Anaconda-Clean and simple remove.

NOTE: Anaconda-Clean must be run before simple remove.

Install the Anaconda-Clean package from Anaconda Prompt or a terminal window:

conda install anaconda-clean

In the same window, run one of these commands:

Remove all Anaconda-related files and directories with a confirmation prompt before deleting each one:

anaconda-clean

Or, remove all Anaconda-related files and directories without being prompted to delete each one:

anaconda-clean --yes

Anaconda-Clean creates a backup of all files and directories that might be removed, such as .bash_profile
, in a folder named .anaconda_backup
 in your home directory. Also note that Anaconda-Clean leaves your data files in the AnacondaProjects directory untouched. After using Anaconda-Clean, follow the instructions above in Option A to uninstall Anaconda. Removing Anaconda path from .bash_profile

If you use Linux or macOS, you may also wish to check the .bash_profile
file in your home directory for a line such as:

export PATH="/Users/jsmith/anaconda3/bin:$PATH"

NOTE: Replace /Users/jsmith/anaconda3/
 with your actual path.

This line adds the Anaconda path to the PATH environment variable. It may refer to either Anaconda or Miniconda. After uninstalling Anaconda, you may delete this line and save the file.



일상불만족-확률변수, 확률과정 금융공학

유리수, 무리수 같은 용어가 마음에 들지 않는 이유는 한번에 그 의미를 이해하기 어렵다는 것이다. 물론 어려운 개념을 한자어로 옮겨 놓은 것이라(혹시 일본식 용어일지도) 중고등학생부터 그 중고등학생이 성장해 성인이 되어서도 선뜻 이해가 안되는 것이다.

확률변수, 확률과정도 유리수, 무리수 같은 넘들이다. 확률변수라는 넘은 확률+변수라는 단어의 조합인데, 둘 다 쉬운 말은 아니다. 실상 확률변수는 변수라고 하지만 함수이기도 하다. 함수라는 것은 무언가를 돌려주는 것이다.

주사위를 가지고 확률변수를 설명하자면, 주사위의 눈은 1~6사이의 값이다. 확률변수는 1~6사이에서 임의로(같은 확률이지만) 결정되는 결과 값으로 본다. 한편 주사위를 던지는 과정을 상상해보자. 주사위를 던지면 주사위는 내 손을 떠나 공중에서 찰나의 순간동안 머물게 된다. 그리고 땅에 떨어져 구르다가 멈추면서 1~6 사이의 값중 하나를 보여준다. 주사위가 손을 떠나 공중에 머물다 추락하면서 지면에서 굴러 결과값을 보여주는 일련의 과정은 함수이다. 내 손을 떠난 이후 무슨 일이 일어났는 지는 모르지만 결과값을 보여주기 때문이다.

확률변수라는 것을 흔하게 볼 수 있는 장면이 정규분포 그래프이다. x축은 확률변수의 땅이다. 표준정규 누적분포함수(Cumulative Normal Standard Distribution)의 확률변수는 음의 무한대에서 양의 무한대이다. 한 쪽에는 깊은 바다와 반대 편에는 높은 산이 있는 있는 셈이다.

확률과정이라는 말도 한번 따져보자. 확률은 이미 아는 개념이니까 넘어가고 과정이라는 말이 거시기하다. 확률이 무슨 과정을 겪는 건가? 용어가 어렵다보니 엉뚱한 상상을 하게 된다. 동전 던지기 실험을 10분마다 한번씩 시행하기로 했다고 하자. 10분마다 그 결과값이 생기면서 결과(확률변수)가 모아지는 데, 이렇게 결과 값을 모은 것을 확률과정이라고 할 수 있다. 확률변수의 집합=확률과정 이다. 환율, 주가, 금리 등의 변화가 확률과정이다.


Risk-Return Ratio 증권

Risk-Return Ratio(RRR)는 일정기간동안의 위험관점에서 본 일종의 위험조정수익률이다. 이때 위험은 MDD(Maximum Drawdown)을 사용한다.
RRR=R/MDD

여기서 R=(Pend-Pstart)/Pstart, Pend는 기간말 가격, Pstart는 기간초 가격이다.



TA-Lib 파이썬 패키지 설치 삽질기 PYTHON

학술적으로 기술적 분석은 미신이나 다름 없다. 그러나 과거의 데이터를 갖고 미래를 예측해보려는 인간의 공통적인 행위중 하나이고, 어떤 패턴을 파악해서 불안한 미래를 예측하여 마음의 안정을 갖으려는 원초적인 노력의 결과이기도 하다.

예전에 기계적으로 계산 가능한 기술적 지표를 엑셀과 VBA로 만들어 보려는 노력을 하던 때가 있었는데, 그 당시 알게 된 것이 TA-Lib이다. 그냥 흔한 C언어용 라이브러리인줄 알았는데, 기술적 분석과 관련하여 기억나는 라이브러리는 TA-Lib뿐이다.
    알고리즘 트레이딩 자료를 만들기 위해 zipline 관련 문서를 정리하고 있는 데, 개발환경구축이 사실 막장 느낌이다.
  1. zipline은 플랫폼에선 자유로운 반면 파이썬3.5버전까지만 지원한다.
  2. 아나콘다 최신버전은 파이썬3.6이다
  3. 아나콘다 아카이브에서 4.2.0버전을 다운 받거나 conda명령으로 파이썬3.5 설치
  4. 국내 증권사 API가 윈도우 플랫폼만 지원하며, 파이썬32비트 버전을 사용해야 한다(이 부분은 확인 필요)
  5. TA-Lib는 필수는 아니지만 이거 없으면 매매알고리즘을 만들 때 엄청 피곤할 것이다.
  6. TA-Lib버전은 윈도우 플랫폼이 가능하지만 소스코드를 컴파일해야 한다(그래서 VC++ Build Tools 또는 VS 필요)
  7. TA-Lib64비트 버전은 공식적으로 지원없음(소스를 컴파일하는 방법 가능)
  8. 게다가 zipline이 32비트 지원을 중단하는 일은 시간의 문제
결론은 #윈도우 #32비트 파이썬 #3.5.이하 파이썬 #불편한 TA-Lib설치이다

ta-lib란?
주식 차트의 기술적 분석을 위한 200여 가지의 지표 함수를 제공하는 C 라이브러리인데, 파이썬으로 포팅되어있다.
- 공식홈페이지: http://ta-lib.org/
- 함수 목록: http://ta-lib.org/function.html
- Python 패키지 및 엑셀 플러그 인 제공
https://github.com/mrjbq7/ta-lib
http://mrjbq7.github.io/ta-lib/doc_index.html

설치로그:나의 오후를 잡아 먹은 삽질을 정리해보았다.
앞서 아나콘다4.2.0(파이썬3.5) 32비트 버전과 zipline이 설치된 상태에서
    # 소스코드 컴파일하여 설치하는 방법(Install TA-Lib C Library on Windows 10)
  1. Download and Unzip ta-lib-0.4.0-msvc.zip(https://github.com/mrjbq7/ta-lib)
  2. Move the Unzipped Folder ta-lib to C:\
  3. Download and Install Visual Studio Community 2015 또는 Visual C++ Build Tools
  4. Build TA-Lib Library
    4-1) 명령프롬프트 실행 [VS2015 x86 Native Tools Command Prompt]
    4-2) C:\ta-lib\c\make\cdr\win32\msvc 로 이동
    4-3) nmake 실행
  5. [Anaconda Prompt] 실행(관리자권한으로 실행 추천)
  6. pip install ta-lib
  7. 임포트시 RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa 같은 에러가 나는 경우 numpy업그레이드(pip install numpy --upgrade)
    # 비공식 윈도우용 바이너리로 설치하는 방법(Unofficial Windows Binaries for Python Extension Packages)
  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib 로 이동
  2. TA_Lib‑0.4.16‑cp35‑cp35m‑win32.whl 을 다운받는다(32비트 파이썬3.5용 TA-Lib)
  3. [Anaconda Prompt] 실행
  4. pip install TA_Lib‑0.4.16‑cp35‑cp35m‑win32.whl


세상에서 가장 쉬운 베이즈 통계학 입문

지난 연말부터 이번 달 중순까지 책을 한 권 읽고 나름대로 정리하는 시간을 가져 보았다. 한 권을 읽고 정리하고 보니 뿌듯한 느낌이 들었다. 그래서 결심한 것이 2018년 올 한해에는 책을 대충 읽지 말고 끝까지 읽고 정리를 해볼까 한다. 그래서 읽고 정리한 책이 "세상에서 가장 쉬운 베이즈 통계학 입문"이다. 통계학도 잘 모르는 상황에서 베이즈 통계학을 공부하겠다고 몇 권의 책을 보고 좌절했다. 어찌 초반에만 쉬운 지...뒤로 갈 수록 @.@

결론부터 말하자면 베이즈 통계학을 처음 입문하고자 하는 분은 꼭 한번 읽어보시길 바이다. 소개한 바와 같이 책은 복잡한 수식없이 단순 계산만 갖고 진행한다. 그리고 이 책의 장점중 하나는 확률의 개념을 면적으로 보고 조건부 확률과 관측 정보를 곱하는 방식으로 확률을 설명하고 있다. 책은 1부와 2부로 나눠져 있는데, 1부는 재미있는 산수공부처럼 생각하고 읽어 나갈 수 있다. 그러나 2부는 약간 미간을 구겨가며 집중을 하면서 읽어야 한다 (책의 중간 중간에 오타/오류가 있는 데, 번역출판과정에서 생긴 듯하다)

저자는 일본 데이쿄 대학교 경제학부에 재직중인 고지마 히로유키교수이다. 사실 이 분의 책을 한 권 더 가지고 있었다. "세상에서 가장 쉬운 통계학 입문"이 그것인데, 공교롭게도 책을 사다보니 같은 저자였다. 이 책은 통계지식이 그냥 부족한 게 아니라 절대 부족한 사람들을 위해 쓴 책인데, 이 책을 먼저 있어도 된다.

윈도에서 PyMC3 설치 PYTHON

지난 번에 우분투에서 PyMC를 설치하는 걸 포스팅한 적이 있는 데, 우분투나 맥이야 컴파일러가 아예 포함되어 있는 등 개발이 편한 점이 있지만 윈도우는 그렇치 않아 PyMC3 설치가 까다로운 듯하다. 처음에 파이썬3.6하에서 PyMC3를 설치하였는데, 거기에 필요한 theano가 파이썬 3.6을 아직 지원하지 않아 결국은 실패.

그래서 재수하여 파이썬3.5 가상개발환경을 만들고 PyMC3를 설치하여 보았다. 결론은 주관적으로 80~90% 성공(아직 샘플을 하나만 돌려서 나중에 뭔 에러가 날지는 모르겠지만) 다음은 설치한 내역인데, 참고 삼아 올려본다.

정리하면 :
1. conda create -n bayes python=3.5.3 anaconda
2. activate bayes
3. conda install -c conda-forge pymc3
4. conda install numpy scipy mkl-service libpython m2w64-toolchain

Welcome to Anaconda

(C:\Users\JIMSJOO\Anaconda3) C:\Users\JIMSJOO>conda create -n bayes python=3.5.3 anaconda
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\JIMSJOO\Anaconda3\envs\bayes:

The following NEW packages will be INSTALLED:

anaconda: custom-py35h64770cb_0
certifi: 2017.11.5-py35h456c6ae_0
pip: 9.0.1-py35h691316f_4
python: 3.5.3-3
setuptools: 36.5.0-py35h21a22e4_0
vc: 14-h2379b0c_2
vs2015_runtime: 14.0.25123-hd4c4e62_2
wheel: 0.30.0-py35h38a90bc_1
wincertstore: 0.2-py35hfebbdb8_0

Proceed ([y]/n)? y

#
# To activate this environment, use:
# > activate bayes
#
# To deactivate an active environment, use:
# > deactivate
#
# * for power-users using bash, you must source
#


(C:\Users\JIMSJOO\Anaconda3) C:\Users\JIMSJOO>activate bayes
Welcome to Anaconda

(bayes) C:\Users\JIMSJOO>conda install -c conda-forge pymc3
Fetching package metadata ...............
Solving package specifications: .

Package plan for installation in environment C:\Users\JIMSJOO\Anaconda3\envs\bayes:

The following NEW packages will be INSTALLED:

backports: 1.0-py35_1 conda-forge
backports.functools_lru_cache: 1.4-py35_1 conda-forge
ca-certificates: 2017.11.5-0 conda-forge
cycler: 0.10.0-py35_0 conda-forge
freetype: 2.8.1-vc14_0 conda-forge [vc14]
h5py: 2.7.1-py35_2 conda-forge
hdf5: 1.10.1-vc14_1 conda-forge [vc14]
icc_rt: 2017.0.4-h97af966_0
icu: 58.2-vc14_0 conda-forge [vc14]
intel-openmp: 2018.0.0-hd92c6cd_8
joblib: 0.11-py35_0 conda-forge
jpeg: 9b-vc14_2 conda-forge [vc14]
libgpuarray: 0.7.5-vc14_0 conda-forge [vc14]
libpng: 1.6.34-vc14_0 conda-forge [vc14]
mako: 1.0.7-py35_0 conda-forge
markupsafe: 1.0-py35_0 conda-forge
matplotlib: 2.1.1-py35_2 conda-forge
mkl: 2018.0.1-h2108138_4
numpy: 1.14.0-py35h4a99626_0
openssl: 1.0.2n-vc14_0 conda-forge [vc14]
pandas: 0.22.0-py35_0 conda-forge
patsy: 0.5.0-py35_0 conda-forge
pygpu: 0.7.5-py35_0 conda-forge
pymc3: 3.2-py35_0 conda-forge
pyparsing: 2.2.0-py35_0 conda-forge
pyqt: 5.6.0-py35_4 conda-forge
python-dateutil: 2.6.1-py35_0 conda-forge
pytz: 2017.3-py_2 conda-forge
qt: 5.6.2-vc14_1 conda-forge [vc14]
scipy: 1.0.0-py35h75710e8_0
sip: 4.18-py35_1 conda-forge
six: 1.11.0-py35_1 conda-forge
theano: 1.0.1-py35_1 conda-forge
tornado: 4.5.3-py35_0 conda-forge
tqdm: 4.19.5-py_0 conda-forge
zlib: 1.2.11-vc14_0 conda-forge [vc14]

Proceed ([y]/n)? y

ca-certificate 100% |###############################| Time: 0:00:02 76.97 kB/s
backports-1.0- 100% |###############################| Time: 0:00:00 293.55 kB/s
joblib-0.11-py 100% |###############################| Time: 0:00:01 115.96 kB/s
markupsafe-1.0 100% |###############################| Time: 0:00:00 109.96 kB/s
numpy-1.14.0-p 100% |###############################| Time: 0:00:00 8.68 MB/s
pyparsing-2.2. 100% |###############################| Time: 0:00:00 100.65 kB/s
pytz-2017.3-py 100% |###############################| Time: 0:00:01 111.23 kB/s
sip-4.18-py35_ 100% |###############################| Time: 0:00:02 242.40 kB/s
six-1.11.0-py3 100% |###############################| Time: 0:00:00 1.39 MB/s
tornado-4.5.3- 100% |###############################| Time: 0:00:02 234.72 kB/s
cycler-0.10.0- 100% |###############################| Time: 0:00:00 0.00 B/s
h5py-2.7.1-py3 100% |###############################| Time: 0:00:03 210.72 kB/s
mako-1.0.7-py3 100% |###############################| Time: 0:00:00 186.76 kB/s
pyqt-5.6.0-py3 100% |###############################| Time: 0:00:05 875.71 kB/s
python-dateuti 100% |###############################| Time: 0:00:03 76.87 kB/s
backports.func 100% |###############################| Time: 0:00:00 612.81 kB/s
pandas-0.22.0- 100% |###############################| Time: 0:00:08 1.17 MB/s
patsy-0.5.0-py 100% |###############################| Time: 0:00:03 88.86 kB/s
pygpu-0.7.5-py 100% |###############################| Time: 0:00:02 260.30 kB/s
matplotlib-2.1 100% |###############################| Time: 0:00:06 1.13 MB/s
theano-1.0.1-p 100% |###############################| Time: 0:00:06 622.71 kB/s
pymc3-3.2-py35 100% |###############################| Time: 0:00:04 275.41 kB/s

(bayes) C:\Users\JIMSJOO>python
Python 3.5.3 |Anaconda custom (64-bit)| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymc3 as pm
WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\theano\configdefaults.py:560: UserWarning: DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory
warnings.warn("DeprecationWarning: there is no c++ compiler."
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
WARNING (theano.configdefaults): install mkl with `conda install mkl-service`: No module named 'mkl'
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
>>> exit()

(bayes) C:\Users\JIMSJOO>conda install numpy scipy mkl-service libpython m2w64-toolchain
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\JIMSJOO\Anaconda3\envs\bayes:

The following NEW packages will be INSTALLED:

libpython: 2.1-py35_0
m2w64-binutils: 2.25.1-5
m2w64-bzip2: 1.0.6-6
m2w64-crt-git: 5.0.0.4636.2595836-2
m2w64-gcc: 5.3.0-6
m2w64-gcc-ada: 5.3.0-6
m2w64-gcc-fortran: 5.3.0-6
m2w64-gcc-libgfortran: 5.3.0-6
m2w64-gcc-libs: 5.3.0-7
m2w64-gcc-libs-core: 5.3.0-7
m2w64-gcc-objc: 5.3.0-6
m2w64-gmp: 6.1.0-2
m2w64-headers-git: 5.0.0.4636.c0ad18a-2
m2w64-isl: 0.16.1-2
m2w64-libiconv: 1.14-6
m2w64-libmangle-git: 5.0.0.4509.2e5a9a2-2
m2w64-libwinpthread-git: 5.0.0.4634.697f757-2
m2w64-make: 4.1.2351.a80a8b8-2
m2w64-mpc: 1.0.3-3
m2w64-mpfr: 3.1.4-4
m2w64-pkg-config: 0.29.1-2
m2w64-toolchain: 5.3.0-7
m2w64-tools-git: 5.0.0.4592.90b8472-2
m2w64-windows-default-manifest: 6.4-3
m2w64-winpthreads-git: 5.0.0.4634.697f757-2
m2w64-zlib: 1.2.8-10
mkl-service: 1.1.2-py35h051acba_4
msys2-conda-epoch: 20160418-1

Proceed ([y]/n)? y

libpython-2.1- 100% |###############################| Time: 0:00:04 9.69 MB/s
mkl-service-1. 100% |###############################| Time: 0:00:00 846.01 kB/s

(bayes) C:\Users\JIMSJOO>python
Python 3.5.3 |Anaconda custom (64-bit)| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymc3 as pm
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
>>> model=pm.Model()
>>> with model:
... mu1=pm.Normal("mu1",mu=0,sd=1,shape=10)
...
>>> with model:
... step=pm.NUTS()
... trace=pm.sample(2000,tune=1000,init=None,step=step,njobs=2)
...

C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\pymc3\model.py:384: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
if not np.issubdtype(var.dtype, float):
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
23%|##################3 | 704/3000 [00:01<00:05, 446.05it/s]WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
35%|########################### | 1054/3000 [00:02<00:03, 492.33it/s]C:\Users\JIMSJOO\Anaconda3\envs\bayes\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
100%|#############################################################################| 3000/3000 [00:05<00:00, 576.51it/s]
>>>

가상개발환경을 주피터 노트북에서 사용하기 PYTHON


윈도우에서 아나콘다를 가지고 가상개발환경을 만들었는데, 콘솔이 아닌 주피터 노트북에서 사용하고 싶었다. 그러나 가상개발환경을 만들어 준다고 해도 편리하게 주피터 노트북에서 가상개발환경을 사용하도록 만들어 주지는 못하는 듯하다 (나중에 안 사실이지만, 아나콘다 루트의 기본 파이썬 버전을 사용하는 가상개발환경을 만드는 경우 자동으로 만들어 준다) 주피터노트북은 가상개발환경과 무관하게 아나콘다의 전역적인 개발환경을 염두에 두고 작동을 하도록 만든 듯하다.

구체적인 방법은 다음과 같다.
1. 아나콘다 프롬프트를 연 후 가상개발환경으로 들어간다.
activate py35


2. ipykernel을 설치한다
(py35) $ pip install ipykernel


3. C:\Users\사용자이름\Anaconda3\share\jupyter\kernels 밑에 가상개발환경을 위한 커널폴더를 만들고 kernel.json 파일을 생성한다.

기본적으로 python3 폴더가 있고 그안에 kernel.json파일이 있다. kernel.json파일에는 주피터 노트북에서 기본으로 사용할 수 있는 Python3 노트북의 설정이 여기 있는데, 그 내용은 다음과 같다.
{
"argv": [
"C:\\Users\\사용자이름\\Anaconda3\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}

우리가 만든 가상개발환경도 python3와 같이 똑같이 만들어 주는 것이 핵심이다. 가상개발환경을 위한 노트북용 폴더(폴더이름이 가상개발환경의 이름과 일치하지 않아도 된다)를 하나 만들고 kernel.json 파일을 추가해준다.

4. kernel.json 편집
kernel.json의 세 번째 행은 파이썬 실행파일이 있는 경로와 파일명이다. 보통 가상개발환경은 C:\Users\사용자이름\Anaconda3\envs 아래에 만들어 진다. 그리고 가상개발환경 폴더에 python.exe가 있다. 그리고 "display_name" 에는 주피터 노트북 이름을 적어준다, 이름은 가상개발환경의 그것과 달라도 된다.
{
"argv": [
"C:\\Users\\사용자이름\\Anaconda3\\envs\\py35\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Zipline",
"language": "python"
}


5. zipline이라는 커널이 새로 생긴 걸 볼 수 있다

1 2 3 4 5 6 7 8 9 10 다음