* Windows 10 Pro


1.

 : 하기의 URL을 통해 python 내려받기

  > https://www.python.org/downloads/


2.

 : python-3.7.1 실행 후 다음과 같이 설정 후 Install Now 클릭


3.


4.

 : 경로 길이 제한을 해제하기 위해 Disable path length limit를 클릭


5.

 : 설치 완료 메세지가 출력되면 Close 버튼 클릭하여 마무리


6.


7.

 : 고급 탭 클릭 후 하단의 환경 변수(N)... 버튼 클릭


8.

 : Admin에 대한 사용자 변수(U) 목록 중 Path를 찾아 편집 버튼 클릭, 여기서 Admin은 User Name 이므로 환경마다 다를 수 있음


9.

 : 다음과 같이 Python37-3 관련 2개의 환경 변수가 설정되어 있는 것을 확인 가능


10.


11.

 : python 버전 정보 확인, 여기서 옵션 V는 대문자




다음과 같은 에러 발생 시

1
2
3
4
5
6
7
8
9
10
11
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-54-9b9440005e62> in <module>()
     35 
     36 
---> 37 for i in xrange(num_vectors):
     38   if np.random.random() > 0.5:
     39     x_values.append(np.random.normal(0.4, 0.7))
 
NameError: name 'xrange' is not defined
 
cs


파이썬 2.x 에서 3.x 로 변경되면서 range 로 변경되었음.



OS : Windows 10

Py: 2.7.15


1.

 : https://www.python.org/downloads/


2.


3.


4.


5.


6.


7.


환경 변수 설정

8.


9.


10.


* 편집 전에 python27의 경로를 확인


11.


12.


13.

1
2
3
C:\Users\Admin>python --version
Python 2.7.15
 
cs



사이썬(Cython)

 : 컴퓨터의 실제 하드웨어에 가까울수록 처리해야 할 데이터의 타입을 아는 것이 중요하다. 컴퓨터 입장에서는 1 + 1과 1.00 + 1.00은 다르다. 전자는 정수들로 이뤄져 있지만, 후자는 부동소수점수이다. 정수를 계산할 때와 부동소수점수를 계산할 때, 계산이 CPU의 서로 다른 부분에서 이뤄진다. 파이썬에서는 사용하려는 데이터의 타입을 명시할 필요가 없이 파이썬 컴파일러가 타입을 유추한다. 하지만 데이터 타입 추론은 느린 연산이므로 파이썬의 속도를 떨어뜨리는 데에 한몫한다. 사이썬에서는 프로그램을 개발하는 프로그래머가 데이터 타입을 반드시 지정하도록 함으로써 이 문제를 해결했다. 컴파일러가 이 정보를 갖고 있으면 훨씬 빠르게 동작할 수 있다.


넘엑스퍼(Numexpr)

 : 인메모리 패키지에 NumPy가 있다면 빅데이터 패키지의 핵심에는 Numexpr가 있다. Numexpr는 NumPy의 숫자 표현식 평가이지만, 원래의 NumPy보다 몇 배나 빠르다. 표현식을 재작성하고 내부의 JIT(just-in-time) 컴파일러를 사용함으로써 높은 성능을 낸다.


넘바(Numba)

 : Numba는 코드를 실행 직전에 컴파일하는 JIT 컴파일 기법을 이용해 속도를 향상시킨다. 고수준 코드를 작성하면서도 C 코드처럼 빠른 속도를 얻을 수 있다. Numba의 사용법은 직관적이다.


비칼즈(Bcolz)

 : Bcolz는 NumPy를 사용할 때 일어날 수 있는 메모리 부족 문제를 극복하도록 돕는다. Bcolz는 최적화된 압축 형태의 배열에 저장해 작업할 수 있다. 데이터를 슬림하게 만들뿐 아니라 후면에서 Numexpr를 사용해 bcolz 배열을 가지고 계산을 수행할 때 필요한 계산을 줄인다.


블레이즈(Blaze)

 : '파이썬 다운 방식'으로 데이터베이스 후단부(back-end)를 다루고 싶다면 Blaze가 제격이다. 파이썬 코드를 SQL로 번역해줄 뿐만 아니라 관계형 데이터베이스 외에도 CSV나 스파크와 같은 것을 다룰 수도 있다. Blaze를 사용함으로써 여러 데이터베이스와 데이터 라이브러리를 일관적인 방식으로 다룰 수 있다. Blaze는 지금도 개발되고 있어서 모든 기능이 구현되지는 않았다.


테아노(Theano)

 : 테아노는 그래픽 처리 장치를 가지고 직접 작업할 수 있게 해주고 , 수식을 단순화하며, 훌륭한 JIT 컴파일러를 내장하고 있다. 그러한 바탕 위에서 유용한 고등 수학 개념인 텐서를 다루는 훌륭한 라이브러리다.


다스크(Dask)

 : Dask는 계산의 흐름을 최적화하고 효율적으로 수행시킨다. 계산을 분배할 수도 있다.



출처: 파이썬으로 배우는 데이터 과학 입문과 실습 소규모 데이터셋 처리부터 빅데이터 처리, 머신러닝, 시각화까지

출처: http://abc2080.tistory.com/entry/파이썬을-이용한-머신러닝-관련-패키지 [Another Windows]

출처: 파이썬으로 배우는 데이터 과학 입문과 실습 소규모 데이터셋 처리부터 빅데이터 처리, 머신러닝, 시각화까지



아래와 같은 에러 발생 시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# pip install --upgrade pyodbc
Collecting pyodbc
  Using cached pyodbc-4.0.22.tar.gz
Building wheels for collected packages: pyodbc
  Running setup.py bdist_wheel for pyodbc ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-uy211_p4/pyodbc/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/tmpun36g10hpip-wheel- --python-tag cp34:
  running bdist_wheel
  running build
  running build_ext
  building 'pyodbc' extension
  creating build
  creating build/temp.linux-x86_64-3.4
  creating build/temp.linux-x86_64-3.4/src
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DPYODBC_VERSION=4.0.22 -I/usr/include/python3.4m -c src/errors.cpp -o build/temp.linux-x86_64-3.4/src/errors.o -Wno-write-strings
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
  In file included from src/errors.cpp:2:0:
  src/pyodbc.h:56:17: fatal error: sql.h: No such file or directory
   #include <sql.h>
                   ^
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
 
  ----------------------------------------
  Failed building wheel for pyodbc
  Running setup.py clean for pyodbc
Failed to build pyodbc
Installing collected packages: pyodbc
  Running setup.py install for pyodbc ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-uy211_p4/pyodbc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-2segjg5z-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'pyodbc' extension
    creating build
    creating build/temp.linux-x86_64-3.4
    creating build/temp.linux-x86_64-3.4/src
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DPYODBC_VERSION=4.0.22 -I/usr/include/python3.4m -c src/errors.cpp -o build/temp.linux-x86_64-3.4/src/errors.o -Wno-write-strings
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
    In file included from src/errors.cpp:2:0:
    src/pyodbc.h:56:17: fatal error: sql.h: No such file or directory
     #include <sql.h>
                     ^
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
 
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-uy211_p4/pyodbc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-2segjg5z-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-uy211_p4/pyodbc/
 
cs



의존성과 관련하여 다른 프로그램을 사전 설치할 필요가 있습니다.


1. python-pip 를 설치합니다.

 : apt-get install unixodbc-dev

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# apt-get install unixodbc-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libltdl-dev libodbc1 libtool odbcinst odbcinst1debian2 unixodbc
Suggested packages:
  libtool-doc libmyodbc odbc-postgresql tdsodbc unixodbc-bin gcj-jdk
The following NEW packages will be installed:
  libltdl-dev libodbc1 libtool odbcinst odbcinst1debian2 unixodbc unixodbc-dev
0 upgraded, 7 newly installed, 0 to remove and 2 not upgraded.
Need to get 804 kB of archives.
After this operation, 5,198 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libodbc1 amd64 2.2.14p2-5ubuntu5 [175 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty/main odbcinst amd64 2.2.14p2-5ubuntu5 [12.6 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ trusty/main odbcinst1debian2 amd64 2.2.14p2-5ubuntu5 [40.6 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ trusty/main libltdl-dev amd64 2.4.2-1.7ubuntu1 [157 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ trusty/main libtool amd64 2.4.2-1.7ubuntu1 [188 kB]
Get:6 http://archive.ubuntu.com/ubuntu/ trusty/main unixodbc amd64 2.2.14p2-5ubuntu5 [19.8 kB]
Get:7 http://archive.ubuntu.com/ubuntu/ trusty/main unixodbc-dev amd64 2.2.14p2-5ubuntu5 [211 kB]
Fetched 804 kB in 4s (188 kB/s)
Selecting previously unselected package libodbc1:amd64.
(Reading database ... 55073 files and directories currently installed.)
Preparing to unpack .../libodbc1_2.2.14p2-5ubuntu5_amd64.deb ...
Unpacking libodbc1:amd64 (2.2.14p2-5ubuntu5) ...
Selecting previously unselected package odbcinst.
Preparing to unpack .../odbcinst_2.2.14p2-5ubuntu5_amd64.deb ...
Unpacking odbcinst (2.2.14p2-5ubuntu5) ...
Selecting previously unselected package odbcinst1debian2:amd64.
Preparing to unpack .../odbcinst1debian2_2.2.14p2-5ubuntu5_amd64.deb ...
Unpacking odbcinst1debian2:amd64 (2.2.14p2-5ubuntu5) ...
Selecting previously unselected package libltdl-dev:amd64.
Preparing to unpack .../libltdl-dev_2.4.2-1.7ubuntu1_amd64.deb ...
Unpacking libltdl-dev:amd64 (2.4.2-1.7ubuntu1) ...
Selecting previously unselected package libtool.
Preparing to unpack .../libtool_2.4.2-1.7ubuntu1_amd64.deb ...
Unpacking libtool (2.4.2-1.7ubuntu1) ...
Selecting previously unselected package unixodbc.
Preparing to unpack .../unixodbc_2.2.14p2-5ubuntu5_amd64.deb ...
Unpacking unixodbc (2.2.14p2-5ubuntu5) ...
Selecting previously unselected package unixodbc-dev.
Preparing to unpack .../unixodbc-dev_2.2.14p2-5ubuntu5_amd64.deb ...
Unpacking unixodbc-dev (2.2.14p2-5ubuntu5) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up libodbc1:amd64 (2.2.14p2-5ubuntu5) ...
Setting up libltdl-dev:amd64 (2.4.2-1.7ubuntu1) ...
Setting up libtool (2.4.2-1.7ubuntu1) ...
Setting up odbcinst1debian2:amd64 (2.2.14p2-5ubuntu5) ...
Setting up unixodbc (2.2.14p2-5ubuntu5) ...
Setting up unixodbc-dev (2.2.14p2-5ubuntu5) ...
Setting up odbcinst (2.2.14p2-5ubuntu5) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
 
cs


2. python-pip 를 설치합니다.

 : apt-get install python-pip

1
2
3
4
5
6
7
# apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-pip is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
 
cs



3. 다시 pyodbc 설치를 진행합니다.

 : pip install pyodbc

1
2
3
4
5
6
7
8
9
10
# pip install pyodbc
Collecting pyodbc
  Using cached pyodbc-4.0.22.tar.gz
Building wheels for collected packages: pyodbc
  Running setup.py bdist_wheel for pyodbc ... done
  Stored in directory: /root/.cache/pip/wheels/4f/ca/76/a2d9249e460278808e73f834a0312bb9747bb5b8800670cf80
Successfully built pyodbc
Installing collected packages: pyodbc
Successfully installed pyodbc-4.0.22
 
cs




1. 실행 창에서 cmd 창을 실행합니다.

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjkAAAEGCAIAAAAITRPfAAAgAElEQVR4nO3d2XcTZ4Kwcf9PXJm+yJzz3cxF33xnzky+0OmcObO4Z0kn6SSTdGdpOtuEJJ3YIRBiVgcSGjAEMMaAMdjGG17lfZNlW961l/Zd+i5sy6pSaSmpJL+G53d0coIsVUmlqnr0lspy1YWGi1y4cOHChYvIl6oLDReTAACIilYBAERHqwAAoqs/fZZWAQCEdu3aNVoFABAarQIAiI5WAQBER6sAAKKjVQAA0dEqAIDoaBUAQHT5W5VIJELhiMcXsLs86xb7yOxK58hs+/Dsw8HZe/0zd/pmbvbOXO+ZaeyZvd4z+0vv7O2+2eansy0Dc8Z1h9ZH4xxpbBxxql1d37aY+c/FtvSrAQDPqPytCkbi6+7oxGao0+RvMliC4agrEDW7wobNYNtS4OpM4PR44DtDsG40fHI8emEm2miK3V+Jd28m7oxt5ZrzYlt9RpdoFQA8A+rr6202W7af2my2+vp6TRPM3ypfKLriCI4sS/cnrN1ztgdz1vYF+yOjrXXOdm/W2jxjvTNtvT1lvTVluT1lbZqy3Jmy3JneujnrfmQw5Zpz/lY5RxrrM7Ut0ioAENp2jVRzleNHOeRvlT8YtkveFYuzf2bl4azF6gn2mpzdRufjWce9afutcXvjqO2qwXrNYLthsN0aszaPWZxu74X+ten5XB1ZbNsOj+zKLOMqBVoFAKJTbVJxoUoW0iqHP2qyh4ZX/Q8mLH3LDoNZ6pm23e6Yv/PE2NyzdLt76WbX4s2uxVtdizefLJ55sn552DJsdlzsnHG73VknujOoWmyrlw2uVFq13bTUmGrnVoprAADCUZSp6FAlC2lVJBYPBENWl/fHniWTzXNn3Hq3f6W9u8/m9kuhuDMYt/ljFn9s0xcbNrle+dtS25Tlkydb19oNsVhMdYLOkcb0xjhHGlPBUrZK/kGVc6SxvnHEybgKAA6IVJ9KCVWykFZZvLFZa/iXwbWrIxtjZtejOVf3xMagYdzhDbqCccduq9Z9sfoHC79r3pxcsb16d3V8xqg6tcW2XGMhWgUAz5jtSpUSqmQhrQoEQy6395eni4/mrO0z9jFLuPHp+sm787V3jJ/fNv7lxvwfr869fnn2Py7N/ObG5jed6/dnrZ/enfH5fEU/Jpn0Y4B7oy9aBQAHQ4VaNboRujJkvdS/Mr3uajdKBkv0yVq4ZTF8ZTZYPx74ctD/QY/3tXbPP993v3jH8Xhy4/NuS3PfTLYDgDvUT/FL61FBaBUACK1yxwBt3mjz6Po1w/qqzXPTYGk0WC8PWS8MWE71btV1bR5r3/yobeO9B+tvt6x/1mqeWrW91bK6vLpe3KPJfh6gSty0VA0AUGkVPbdiyR682m8eWLIFAgG/3+/3+30+n8/n83q9Ho/H4/G43W632y1JkiRJd6YtX9+bCgQCeWaraVylOBljl/IkQgCAMCp9zvrYsv3elOXq6Ebj2NbfxiyXDJYGg/XcsK1+yHZy0PZtv+3rfvsXfY7Peh2f9Djebnfe7Z1IJBJ5Zqv4Jooib8sxQAAQ0T78LvDQ/MZPDwbP3+s/29Jff3fgVPPgiebBb+8MftM09NXt4WO3hz+7NfzxzeGjN0Y+vDHy19tDy+aV/LPV0irGVQBwsOzDdywlk0m/3y8Vxu125zmrYlv2Y4BZ8sPnVQDw/OJvggAAREerAACio1UAANHRKgCA6GgVAEB0tAoAIDpaBQAQHa0CAIiOVgEAREerAACio1UAANHRKgCA6HZaVeBX0wIAUHl7rdrvagIAoIJWAQBER6sAAKKjVQAA0dEqAIDoaBUAQHS0CgAgOloFABAdrQIAiI5WAQBER6sAAKKjVQAA0dEqAIDoaBUAQHS0CgAgOloFABAdrQIAiI5WAQBER6sAAKKjVQAA0dEqAIDoaBUAQHSSJF2gVQAAkTGuAgCIjlYBAERHqwAAoqNVAADR0SoAgOhoFQBAdLQKACA6WiUyY211da0xmTTWVlfVtFR2xpWdYTLZUlNVXWus6CxLoOXRFrYwd291sJZDITQ9o2w3zrxe4zqq7VVQ/rPw59BSU+CjUplkwfetMDHWSVqVbKmpykW58uS4eeZ6lv3GKqtp5rQ0t8pYW53jqcjnqXrbnblo2Q9kn2e29Vt11S90e5DPrrrWKF9yxU8420NVfXmVE9W0MFWXbqGt0ri6Ku6a+0XV/lJme2S5llXmU0j7cemt2pt6xiukW6vUXoSdu+neKs0vSuYdCl3/ZU8r7ZFo24TKVVxapRctr1Ce1z61hZR1XJVrolpbpXLbHM+x5FbJZlfAzr3IVrXUpG+xxtrqvQmptarghVlSqzIeoabxXVFLYnc1zPdIUs/JWFud9q88z2j7x2m7yb0bZ91NV9ca1Zdi+gKRP9+cq7T6G4Calhytyjat3PuBrO80duei3iqVKWZ5UdTWCGNtdf7VRLF2KB+otnWyLLEqV6uWrZ6B+a2+2U0dL/Prrng8oeODTJPxEmvew4nTKvkuVu0K+VxyPYICPKutynxeadfo1qqMt7IaHm5LTVV1bYu2MXfOaRc9rsp8+mlPo6BWqf9L2zwzrlI+H817UN1blVvprcoxLM07pM4ctxb4CioebFVNjeoOp1TFtyqRTAajcZsvtu6OLjsj4xuhodVQz3KwwxRoHd+aWXPOb0jTa9LEqmvU7BxcdPQYHY9n7fembLcmbFcNth+HbKcHbCf7bMf7bHW99m967d/0Our6nMf7nScHnPVDrvMjrosG1+UxqXFSujUlNc9KV4a3Ztdcei+Bbcr3nNnfg2o6BpiF+vA/c1rp25qG114x+SzPZV9bpfqOWKxWqb9IO1ft97hK/ua1gLeyO3ue3EOkQgZQ2R6Ohj2dxmOAsuLIx7mK55yxR057FPlX6bT5ZNxJU6vy5V2R0L0ppe6rDG7BrVIdQhUyrtKhVS01iiWnc7CKb1U4FveG4hvu6KIjMm8ND6wEn5gCbfP+W+Ouv3WbwtF4OJrwhuPOQHTDG11yRaZt4aGN0JOV0IOl4K354OWZ4Pmp4A/joRNjoe/GQt+Oho+PR09MRE9Nxc7OxC7Ox64uxG8uJe6aE21ria7N5FNLssnov91v0vHJp1PZv6svaD2Oxmo4VK1tXKXlwwzlRFVrWQDNb8bT12nZTMvWKm2PL9uM8o2rsk1az1btPhn1NwfZfiSbYY4Z5Pi4U+uyyjWuUnsEqscAdx+SfG+e9TNV9XrtTC7fNpT+Bir17q4M46pca8N+fl6lsqALnERx66R2xbcqGIl7QrFNT3TZFVmwh0fXQ0/Nga6lwOVe8/ymJxpPBCJxdzBm9UVXpMi8Izy6Fe5bCz5aDt5dCF6fC16aDp6dCJ4aC50YDX03Hj4+FjkxHj01GT09FWuYjf1sjDea4k3mxIO1RPt6oseSHLAlr45LrUMLOjxpNYpVKPsGLXSrMmaT4156jauKeFTV1ZkjPS3jqjQ1LYqtqvjzKNQeaSmfV6U/sIy9k1xNS3GfVxVAsQ/KfCr60PJ5Va6nmPmeUXHT1A3SlmLWehXeKsW2sjcMVV2xsn2+lTmhDJpbleNR6i39aSmers6rSzGKb5UvHLf7Y8vO8Iw1PLYe6lwMPJjz/zLmPt026w1FW+esP/SZa7uWvn6y9FXn4hcdi//7ePHTx4sfPVo8+nDxw4eL77cu/qnV9McHpndbF999sHP5U+vSe61L7z9c+uDh4gcPFz98uPjntsVP2pcvT7q6NmLfP5ybnNN9XJXjvaTqvi/X0EXDBw25dmypiWlqVZ4xlWyD2n3ilW/Vzm4y5xtxgWTrTUnHAHPeSsflIDsok1SsdvKDNFpXnqyzK2BZqc4s7YFoaJV+xwCzt0ptXJVDATnJdQww15GOnC+KHq+g2IpvVTQeD0YSrkDM5otueqIme3jOGr49vDmy5BhalX6Z2PSHIrFd0TSRXeFwOBQKbf83FAoFg8Ht/waDwcAuv9/vcHtvTtp+nnD99GhsbX29TAuiKMW+zSnz26PClL571b55tOydwqJyCLKYfXQhnxyUYevVt1XpU8sz6CjlGQmx2mmk5RigWnEKfqk1HQN8VhVxvLxyjdTzPMBQJNY6urIlBb7vM5udAbsn9Gja+mP3yvkn5vNPzOeyXTqXz3Yun+1YOtu5dLZz6WzH0pmOpTMdS5e6zT2zFq/Pt+X0XJuw/tC10jE45XKV6dyK4hS58ef8MKzEF7vwo9tZblnKQcfcm3TGGQCy40b6t0oP2RZEvs+rNC1MtcN0BdL09As5xFTK6pdl+mqvbK6jGcWfWyE/uik/0lnAKr339POdW5F5Dy3LKdsSUF3/cy2pzJmVvgNRo23bLNcmWXyrHL7YhjtisoenLWHDeqjDFLg1ansyYxlf9zQMroYi0e55++M556w1OG0Jjm4Enq7625d8LUbfjVnvTxPe0wb3d8PuukH3NwPu2gH3d0PuHwzecwbPxXHPlSnvlSnvxTH31w8WJY/XuOU8NWC50DE/Pb8YDAbLsBCKVnyrsn8YpvaT0g/JaTzDS8sMCxwUqE9y7w7lalVpy67QVpXwCIy11VXV1UXWSt9WZVHoItTQqlzT0HB6dJbZqe37i1oPcrUq7RiBYuaFHZFQ77em1ul+42LPQ1JORLBW2XyxFVdk2hIeWgv1LQfuz/ku9qzOrLn+ZtgwrEmSL9Q2bVuwh7omLX+9NPSHr9r+8GXbG1+2vfFl2+u7l9e+bHvti93L7pV/OtVzumP1til8elj6qW/V7fG0zlrPDFiud82sr2/GYjFdn375jggXNzQuoFUF7PlKXtvkM8l/pL+gA1h5pN816xyLWKrlaZVe09jbPxV3voO+h0BLH1eVvO6V3ip9bq64U+bDyvZAC5lPKffNfdvSX8HSD3WK1ypfKObyxyze6JoUXXFFpjYD90bXJ9bd9U+Xg+HIks3XOLxlsoU+P//UuOZeWlm3u7z+SNwXSXjCCXc44QolnMGEM5RwBhOOUMIZSrhCCVcoYdryvV/fd2HCf+zRmmHJ5pQ8X3evne9b6xiacbme+W/WKKBVedYEjQOo7FORHZ3Lc6Bfj0P5iuTptraL2yr52Q1qV+Sn736hxJdSjHGVPjdX3CnLuEr9FKl9HFeV/go+i61S2HL5r/Utnepd6Tc7w5HIvQlL27z7Wpf5ft+yLxw/e+GiTfK5Q7HtUEmhhCuUcAQT9mDcFohbA3GLP77pj2/44k/n7L/7YeTFW7bPHyxv2qWHc7bfNG183WqcmFsKhUJ6PW1R5X9blK9F2g5v55pK2kCuyN9f0rTep20m+vR2R44FUsBMtHyukmsaikWfo0ragqV7q0pZeZ6rcVUymSzp86qS7pssYlxV2iuo7SUUrFWBSMIdjNn9MYs3uuWNtU1sXOlfOd5t3pT8ki908rF5cNX/w63J5S3v5KzxVnOLxeWVgjF3OCFtD6q2W7UdqkB8a7dVdVdGXr62/ttf1u+Mbjglz7utyzWtrp/bp9Y3t+LxeBmWwAHTUlPp85GehzkCEFzxrTK7ItOWUJ850L7gb533nbw3eXlo46fhNckf6pixNRqsj6bsNzoWHL7Iqfozq1s2m9vvDsVTgypnSDao2vLHN3zxsRXP6yef/lOT6407q2NL1mWL86VbK2+3WtoGZtxudyJRpi8DBAAIrfhWeYJxhz+24Y4tuyJdc/YLncYzT1f7lhyBYPjDX+YMG8GmwY0H/WZ3INozMGRxeZ3+sDvtAKAzmLAHlK1qbDf928W5F5vsXz9eWdlyts5svHLf+dm9hdEZ03NwABAAoE6Hz6sSiWRj78KtkY2GgbUlh3d40Xm+Z23GGetd9p1rNf75dN97J7rePd7xxxNd757sfudE9/+c6H77u+43v+v+w/HuN77tfv3b7t/Xdb9a1/XftV3/fm7y/92RXrpluTG4anVIx56Yax4H6u+NrW9s6H0GIADgwCi+VVIwtuWJLjsjI8tS/cPppgnrzYkNu8d/ttPcZ/ZNOWIGa7R/K9q1Hnm0Em5ZCt1cCF2ZC/04HTw9EfxuNPDVkP/Tfv8HPb7/6fK91uH93SPPPz/wHLnn+ce77tfurBhMlh6T9c3H1nfurd/rnfB4PBwABIDnliRJ1b96oZhWzVrD3UuB25Pek63zTYa1HwfXhsyOcbPz5/6NKXtkwh4btkT7NqMda5GH5nDzYviGMfTz7PZ3qwfrDIFjg/6Pnvr/1ON764nv1cfef3vo+e19z4stnn9ocnzSbNy0OU/0rv77I++ntyan5hY4AAgAz7Pix1WjG6FHRv/Pg45TrbMd8466J0s2t/9ij7nT5J5xxMZsscGtaM9GpH01cn853GQKX5sPXZoJnpkMnhwNfj0c+Kzf/+de3ztdvjc6vP/52PMvrZ6X73v+8a775Zvr1/uXjRuO9zs2f//Adv7eyNbW1r4dACzf14CV7dxcAHj2FN+qJUd0fDN0fWCtsd/8y5jl0tCq1eW92LvydMU/ZY8ZrNH+zWjXeuSROdKyFL5p2jkAWD8ePG4IfDXs/7jf/0Gv7+0nuwcAWz1H7nlevG3/72tzxjVb+7zl1Tbn+81LbX3jlTgDMO33CmQFyVOU/L+Xm+tbBZRzyvIbDbQKwHOv+GOA8WQyEI5e7zW1Tlm/6lic3XIFg0HDouP7R6YvW4zyy/zO5e78l3fnv7g7p7w0z33RPHusefZ46/zjiTWHSzozsPYvD1zHbk/MG8t+AFD+6+Lyr7rJ3ap8v6SusVU5/nQarQLwXCt+XLXhjj5dcFzvX741bvmszejz+1N/xWObb5dXzrPLvUuSW7c5P++x/OHe5tWOsa0tS5kPAOb622e5WrXzJeGy7wrPN2n53WkVABSmhO+u9Ubvj603Gda+7zG3zW6lKuVLo7VSLpfL5XKNLFvffGz/sNnUPzbr9XrL9Mx35fxWStWCbH8LjvyvDeT/0+F5ZkurACCrEn4XOBBpGjI/nLZeMWx9/njhqw7Tlx2mL9tNX7QvfNFuOpZ2+bzd9Hm76X/TLp89Nn362PTJ7uXjRzuXjx6ZPnq0+HHn+n+12k+2Ti+YVyKRSJme+S4t46qdb4fL8RXgBf8ZAloFAAUrvlVrDt+l7oXOBWf7guvujP3+nOvurNQ0I92ccV+fdl+d8lye8l6a8DaM+86N++rH/N+PBo4bArUjwa+Gg8eGQp8Ohj4aCH/YH37vaeSdvshbvZE3eqK/747+Z3fsd12xtx7ab3ZNWGy2CnwHYPGfVxUyZX1apfn7IwHgWVJ8q/oXpZ+eGFvGN1smrc2T1qYJ280J+41xe+O448qY4/Ko89Kos8HgOjfiOjPi+mFYOjHk/nbQ/c2A56/9nmP93s/6vB/3+o72+D7s8b3X7Xv3if/tJ/43O/2vdwZeb/d+3TpvmJz3+/1letpKBZ0HqPkPAjGuAgBdFN+qcDQ+uWxreTrb2D567bFBx8v1xyOdA+NrG5vRaLRMT7syaBUA6KL4c9aTyWQsFnO73VtbW5t6s9vtwWCwwt+rpPhtqSx/RUnD1dn++FF1rbGQ36/auSWtAvDcK/W7axOJRLw8Kv4FgMo/Ip7lbHRtCcuK760AgILp9neBD7yWmqqaGvnfpq2pUelP9r8UW5lWKZMKAM8+WpVMJtPGUNsnBdbu9kD9z4/v67iKVgF4/tAqxTnrGTFQtmG/x1UA8PyhVQAA0dEqAIDoaBUAQHS0CgAgOloFABAdrQIAiE6SpAZaBQAQGa0CAIiOVgEARCdJ0vcnvqJVAABxSZL090c+pFUAAHFJkvSXMxwDBAAITJKkc3xeBQAQGedWAABER6sAAKKjVQAA0dEqAIDoaBUAQHS0CgAgOr5nHQAgOloFABAdrQIAiI5WAQBER6sAAKKjVQAA0dEqAIDoaBUAQHS0CgAgOloFABAdrQIAiI5W6eM9AEAaffextEofur8wAHBw0SpB0SoASKFVgqJVAJBCqwRFqwAghVYJilYBQMqBalVLTVV1rbGw2xprqwu+rYhoFQCkCNmqlpqqPTUt6dfL+iO73bbUz2kVADwzhGuVsbY6PUjKHOXsT3rLVFulmLhi6sqf7Gvrytuqlpqqw3UHuOQAnjOitSozMWnX5DkGKLuvSqvkd2+pkQ/aksba6irFDfaxVrQKAFKeoVYZa6vT2pMxIWXJ1CaVOahLj1lF0SoASBGtVdujm71CFH4MUBEyZatkP5ZnTTEV+dx37pQlbuVDqwAgRbhWJZPyQCk+RMrWi4z6KFpVYKpUDhRu31CQVu0tmZ2HVXe4qqbFWHd4+8rDdcbt6zJOS0m/+nCdkVYBOFCEbJVm8tFQMplUa5Xs+GCBrdq/swkzXxhj3eG0Z9lSt9elnewY6w5XHT58ePc26QtFdl/ZnQBg3/z617+em5tTXOnxeF566SXFlWK2SuVk9OzHANVP2ZNXJuOzrIPXKtWhkLHucPq1GUcwd/6lvK/ibgCwL+bm5hS52g5VU1OT4pZitiqLzGOAik+35D/J2iq1cZj6LMRp1fbRPuWtFNfKm5T6YeZ9OQYIQAzpucoWqqSorSpsXJW9OMncn1cVeh7gfp4JqHxh1J8srQJw4G3namhoKFuokgK3qtThjMp5gMpzLxRnH7TUZBxjFOg8QPXDdoW3Snbflho+rwKw/1wu1/b/zM3NvfDCC6lQpa5PeW5apTbN7V6lZAxb0vq2761S/vLy3rkV+VuliFNLzeHDfF4F4CARtlUaTq5QpfpLxZoO6An4vRV7553LzllP/Txrq5R35RgggANFzFaVyc7gKGsH0zzj3wcIAAfKc9Wqg4RWAUAKrRIUrQKAFFolKFoFACm0SlC0CgBSaJWgaBUApNAqQdEqAEihVYKiVQCQQqsERasAIIVWCeo9AEAaffextAoAIDpaBQAQHa0CAIiOVgEAREerAACio1UAANHRKgCA6GgVAEB0kiRdvXqVVgEAxCVJ0rlz52gVAEBckiSdP3+eVgEAxMXnVQAA0dEqAIDoaBUAQHS0CgAgOloFABAdrQIAiI5WAQBER6sAAKKjVQAA0dEqAIDoaBUAQHSSJJ37kVYBAARGqwAAoqNVAADR0SoAgOhkrQIAQEy0CgAgOloFABAdrQIAiI5WAQBER6sAAKKjVQAA0Z378TKtAgAI7fSnr9IqAIDQ3vm/L9AqAIDQ/vVXtAoAILaXaBUAQHAv0yoAgODe+HtaBQAQ24n3XqFVAAChnWs4S6sAAELjeysAAKKjVQAA0dEqAIDoaBUAQHS0CgAguh/O0yoAgNiOfUerAABiu3aNVgEAxEarAACio1XYcQP6YWlXEotaNDrtk2RoFXbcuHHDDD0Usq2ytPWSd2mzqCuMVqG82KT1QqsqiVaJhlahvNik9UKrKolWiYZWobzYpPVCqyqJVomGVqG82KT1QqsqiVaJhlahvNik9UKrKolWiYZWobzYpPVCqyqJVomGVqG82KT1QqsqiVaJhlahvMTYpBuOVB062pl+TefRQ1VHGkqYQMUdoFapLFwBFqAmlWiVyjJpOFL4WqlxFdak8+gh0V6uMrXqzz/QKkiStK97z86jh6pUHTramW1Dbziyd7P0Hwuwq32mW6VlH10RQrUqba1M+6n6KpxlQau/JGpbxu7N93t9VypTq/7Pa8dpFSRJmL1nBrUNveFI+r6g8+ihvW2XVuWX7b3BkQZzvgUoW9ZCKF+rsiym7RVPpVUNR/YaIltOpbYq1z1VW5Wau+IppG8l5XsZy9Sq6t/8hVZBkva/VYrNKrW5Zm67Oa+hVVqo7LNyLsDtF2m/F7CMMOMqxTVp66TOrZLlSaVVaROWTazz6KG07ap8G0q5WvV3b9IqSJIA7/RlW87eRpa57arvOXauolWFazhSVXXokGLJ51iAO/tFsQ47VaBVDUcyA506Lrd7fcZyy7UKy6aQbeiWhXxqGS+GsmTpE5M/xnIdzi1Xq17+lFZBksRulXwLZlxVuvQBknxXnG0Bypa6AEt5V7lbtT0aOapcQZU7evWPmfK0qphxleJuylbJf5yzVeV6FcvUqn96r55WQZJE2XuqfnjM51W6UhsmbC/9Iw3qC1B+9Gjvuv1e0mZzeVslO+TZefSQPOmaWpU5YiqqVRk/VbQqs2SyNxiZRyjKMLIqU6u++JHzACFJ0v63alvB56xzHmCZZL73rsp64GivcPunbK2Styntut1TUPIcmS7DMcDM2qi0SvmhWY7pludoLr9fhfLav71njo226kgDv1+lr1xLu6rqSAPnrBcp+5Am/ypcyFJVP3dPnhvlnDI+26pS/phW4cAR952+qmzbP63Sgt+vyi3rb/7JDlOn3VjDOevp8i1VtYOwqZ8U3KqMf9MqHET7vffMtVtQ2UpplR5oVeHUjgmq3iYjZCW2SuXIn2yOhX5elfnvA/V5Fa3CDkH2nhmybOjl/N6aEj1Drcp9wDDXe4mKqVCrGo5UVR06ciTb8CYn5VLWc6mqnAeY9RszlKOzvZda9svD8v/RjlahvATZe2agVWXE9wHmtzNW2l1M26HRtIgq+n2Astcv28m1u7dM/zUQWoUDQpC9Z4Ycrcpmn/e1tKqSytiqnXVMZXEo+lXAdCr33bUFzu3AfW8FrcIOQfaez4AD1KpngDDnAYpjZ0yU4/DiQfw+QFqFHc/fJl0utKqSaJVoaBXKi01aL7SqkmiVaGgVyotNWi+0qpJolWhoFcqLTVovtKqSaJVoaBXKi01aL7SqkmiVaGgVyotNWi+0qpJolWhoFcqLTVovtKqSaJVoaBXKi01aL7SqkmiVaGgVyusG9MPSriQWtWh02ifJ0CoAgOhoFQBAdLQKACA6WgUAEB2tAgCI7q06WgUAEBvjKgCA6GgVAEB0tAoAIDpaBQAQHa0CAIiOVgEARPfbvzTQKgCA0BhXAQBEt9MqLly4cHl+LvWnz14r2JUrV86dO3fhwoXC71IJ5z965VevfBqZ3tgAAAAMSURBVHx+vx9GBf1/kcSXFv3mhl4AAAAASUVORK5CYIIA

* 실행 창 단축키는 "Ctrl + R" 와 같습니다.



2. cmd 창에서 다음과 같이 "pip install PyMySQL" 을 실행합니다.

1
2
3
4
5
6
7
C:\Users\Admin>pip install PyMySQL
Collecting PyMySQL
  Downloading PyMySQL-0.7.11-py2.py3-none-any.whl (78kB)
    100% |████████████████████████████████| 81kB 428kB/s
Installing collected packages: PyMySQL
Successfully installed PyMySQL-0.7.11
 
cs



3. python 에 접속합니다.

1
2
3
4
C:\Users\Admin>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 
cs



4. pip install 을 통해 설치한 pymsql 을 import 합니다.

1
2
>>> import pymysql
 
cs



5. 접속 정보를 다음과 같이 입력하여 접속을 시도합니다.

1
2
>>> conn = pymysql.connect(host='192.168.11.123', port=3306, user='test', password='test', db='board', charset='utf8')
 
cs

* port 와 같은 경우 기본 포트 3306 일 경우에 생략 가능합니다.



6. 연결이 성공하였을 경우 아래와 같이 커서를 설정합니다.

1
2
>>> curs = conn.cursor()
 
cs



7. 간단한 질의문을 변수에 저장합니다.

1
2
>>> sql = "select * from board_pro"
 
cs



8. 질의문이 담긴 변수를 커서의 실행 메소드에 매개 변수로 전달합니다. 다음 라인에 바로 건수가 출력됩니다.

1
2
3
>>> curs.execute(sql)
7
 
cs



9. 커서로부터 모든 행을 가져와서 rows 변수에 저장합니다.

1
2
>>> rows = curs.fetchall()
 
cs



10. rows 변수에 담긴 값들을 출력합니다.

1
2
3
>>> print(rows)
((4, 'test first', 'test first', 'test first', datetime.datetime(2017, 11, 6, 2, 27, 23), 0), (5, 'test second', 'test second', 'test second', datetime.datetime(2017, 11, 6, 2, 27, 33), 0), (6, 'test third', 'test third', 'test third', datetime.datetime(2017, 11, 6, 2, 27, 41), 0), (7, 'test fourth', 'test fourth', 'test fourth', datetime.datetime(2017, 11, 6, 2, 28, 12), 0), (8, '??? ??', '??? ?????', '??', datetime.datetime(2017, 11, 9, 8, 10, 58), 12), (9, '??? ', '???', '??? ??', datetime.datetime(2017, 11, 9, 8, 13, 53), 1), (10, '??? ? ???....', '?? ??', 'test', datetime.datetime(2017, 11, 9, 8, 45, 38), 5))
 
cs

* 참고로 데이터베이스에서 조회한 결과는 다음과 같습니다.



11. 연결을 끊고 작업을 마무리합니다.

1
2
>>> conn.close()
 
cs



+ Recent posts