* 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는 대문자




* Windows 10 Pro


1.

 : https://nodejs.org/ko/

 : 10.12.0 현재 버전 클릭


2.


3.


4.


5.


6.


7.


8.


9.


10.


11.

 : 환경 변수(N)... 버튼 클릭


12.

 : 시스템 변수(S) > Path > 편집(I)...


13.

 : 환경 변수 등록 여부 확인


14.


15.



'Programming > Node.js' 카테고리의 다른 글

node.js 시작하기  (0) 2018.06.18
node-v7.4.0-x64 설치 및 환경 구축  (0) 2017.01.24


다음과 같은 에러 발생 시

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]

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



os: windows 10

node: 7.4.0


1. node.js를 시작할 폴더의 경로를 지정하여 다음의 명령어를 실행합니다.

npm은 프로젝트 구성을 위해 몇 가지 파라미터를 요청하므로 적절히 입력 후 엔터

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
C:\Users\Admin\Downloads\node>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
 
See `npm help json` for definitive documentation on these fields
and exactly what they do.
 
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
 
Press ^C at any time to quit.
name: (node) rabbit
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to C:\Users\Admin\Downloads\node\package.json:
 
{
  "name": "rabbit",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
 
 
Is this ok? (yes) yes
 
cs



2. 2~3번 과정은 추후 사용할 프레임워크 및 툴이므로 필요치 않을 경우 하지 않아도 무방합니다.

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
C:\Users\Admin\Downloads\node>npm install --save seneca
rabbit@1.0.0 C:\Users\Admin\Downloads\node
`-- seneca@3.6.0
  +-- archy@1.0.0
  +-- eraro@1.0.0
  +-- gate-executor@1.1.1
  +-- gex@0.3.0
  +-- json-stringify-safe@5.0.1
  +-- jsonic@0.3.0
  +-- lodash@4.17.10
  +-- minimist@1.2.0
  +-- nid@0.3.2
  +-- norma@0.4.1
  +-- ordu@0.1.1
  +-- patrun@1.0.0
  +-- qs@6.5.2
  +-- rolling-stats@0.1.1
  +-- semver@5.5.0
  +-- seneca-transport@2.3.0
  | +-- lru-cache@4.1.3
  | | +-- pseudomap@1.0.2
  | | `-- yallist@2.1.2
  | +-- ndjson@1.5.0
  | | +-- split2@2.2.0
  | | `-- through2@2.0.3
  | |   +-- readable-stream@2.3.6
  | |   | +-- core-util-is@1.0.2
  | |   | +-- inherits@2.0.3
  | |   | +-- isarray@1.0.0
  | |   | +-- process-nextick-args@2.0.0
  | |   | +-- safe-buffer@5.1.2
  | |   | +-- string_decoder@1.1.1
  | |   | `-- util-deprecate@1.0.2
  | |   `-- xtend@4.0.1
  | `-- reconnect-core@1.3.0
  |   `-- backoff@2.5.0
  |     `-- precond@0.2.3
  +-- use-plugin@1.0.2
  `-- wreck@12.5.1
    +-- boom@5.2.0
    `-- hoek@4.2.1
 
npm WARN rabbit@1.0.0 No description
npm WARN rabbit@1.0.0 No repository field.
 
cs



3.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
C:\Users\Admin\Downloads\node>npm install -g pm2
C:\Users\Admin\AppData\Roaming\npm\pm2-runtime -> C:\Users\Admin\AppData\Roaming\npm\node_modules\pm2\bin\pm2-runtime
C:\Users\Admin\AppData\Roaming\npm\pm2-dev -> C:\Users\Admin\AppData\Roaming\npm\node_modules\pm2\bin\pm2-dev
C:\Users\Admin\AppData\Roaming\npm\pm2-docker -> C:\Users\Admin\AppData\Roaming\npm\node_modules\pm2\bin\pm2-docker
C:\Users\Admin\AppData\Roaming\npm\pm2 -> C:\Users\Admin\AppData\Roaming\npm\node_modules\pm2\bin\pm2
C:\Users\Admin\AppData\Roaming\npm
`-- pm2@2.10.4
  +-- async@2.6.1
  | `-- lodash@4.17.10
  +-- blessed@0.1.81
  +-- chalk@1.1.3
  | +-- ansi-styles@2.2.1
  | +-- escape-string-regexp@1.0.5
  | +-- has-ansi@2.0.0
  | | `-- ansi-regex@2.1.1
  | +-- strip-ansi@3.0.1
  | `-- supports-color@2.0.0
  +-- chokidar@2.0.3
  | +-- anymatch@2.0.0
  | | `-- micromatch@3.1.10
  | |   +-- arr-diff@4.0.0
  | |   +-- define-property@2.0.2
  | |   | `-- is-descriptor@1.0.2
  | |   |   +-- is-accessor-descriptor@1.0.0
  | |   |   `-- is-data-descriptor@1.0.0
  | |   +-- extend-shallow@3.0.2
  | |   | +-- assign-symbols@1.0.0
  | |   | `-- is-extendable@1.0.1
  | |   |   `-- is-plain-object@2.0.4
  | |   +-- extglob@2.0.4
  | |   | +-- define-property@1.0.0
  | |   | | `-- is-descriptor@1.0.2
  | |   | |   +-- is-accessor-descriptor@1.0.0
  | |   | |   `-- is-data-descriptor@1.0.0
  | |   | +-- expand-brackets@2.1.4
  | |   | | +-- debug@2.6.9
  | |   | | +-- define-property@0.2.5
  | |   | | +-- extend-shallow@2.0.1
  | |   | | `-- posix-character-classes@0.1.1
  | |   | `-- extend-shallow@2.0.1
  | |   +-- fragment-cache@0.2.1
  | |   +-- kind-of@6.0.2
  | |   +-- nanomatch@1.2.9
  | |   | +-- is-odd@2.0.0
  | |   | | `-- is-number@4.0.0
  | |   | `-- is-windows@1.0.2
  | |   +-- object.pick@1.3.0
  | |   `-- regex-not@1.0.2
  | +-- async-each@1.0.1
  | +-- braces@2.3.2
  | | +-- arr-flatten@1.1.0
  | | +-- array-unique@0.3.2
  | | +-- extend-shallow@2.0.1
  | | | `-- is-extendable@0.1.1
  | | +-- fill-range@4.0.0
  | | | +-- extend-shallow@2.0.1
  | | | +-- is-number@3.0.0
  | | | | `-- kind-of@3.2.2
  | | | |   `-- is-buffer@1.1.6
  | | | +-- repeat-string@1.6.1
  | | | `-- to-regex-range@2.1.1
  | | +-- isobject@3.0.1
  | | +-- repeat-element@1.1.2
  | | +-- snapdragon@0.8.2
  | | | +-- base@0.11.2
  | | | | +-- cache-base@1.0.1
  | | | | | +-- collection-visit@1.0.0
  | | | | | | +-- map-visit@1.0.0
  | | | | | | `-- object-visit@1.0.1
  | | | | | +-- get-value@2.0.6
  | | | | | +-- has-value@1.0.0
  | | | | | | `-- has-values@1.0.0
  | | | | | |   `-- kind-of@4.0.0
  | | | | | +-- set-value@2.0.0
  | | | | | | `-- extend-shallow@2.0.1
  | | | | | +-- to-object-path@0.3.0
  | | | | | | `-- kind-of@3.2.2
  | | | | | +-- union-value@1.0.0
  | | | | | | `-- set-value@0.4.3
  | | | | | |   `-- extend-shallow@2.0.1
  | | | | | `-- unset-value@1.0.0
  | | | | |   `-- has-value@0.3.1
  | | | | |     +-- has-values@0.1.4
  | | | | |     `-- isobject@2.1.0
  | | | | +-- class-utils@0.3.6
  | | | | | +-- arr-union@3.1.0
  | | | | | +-- define-property@0.2.5
  | | | | | `-- static-extend@0.1.2
  | | | | |   +-- define-property@0.2.5
  | | | | |   `-- object-copy@0.1.0
  | | | | |     +-- copy-descriptor@0.1.1
  | | | | |     +-- define-property@0.2.5
  | | | | |     `-- kind-of@3.2.2
  | | | | +-- component-emitter@1.2.1
  | | | | +-- define-property@1.0.0
  | | | | | `-- is-descriptor@1.0.2
  | | | | |   +-- is-accessor-descriptor@1.0.0
  | | | | |   `-- is-data-descriptor@1.0.0
  | | | | +-- mixin-deep@1.3.1
  | | | | | +-- for-in@1.0.2
  | | | | | `-- is-extendable@1.0.1
  | | | | `-- pascalcase@0.1.1
  | | | +-- debug@2.6.9
  | | | +-- define-property@0.2.5
  | | | | `-- is-descriptor@0.1.6
  | | | |   +-- is-accessor-descriptor@0.1.6
  | | | |   | `-- kind-of@3.2.2
  | | | |   +-- is-data-descriptor@0.1.4
  | | | |   | `-- kind-of@3.2.2
  | | | |   `-- kind-of@5.1.0
  | | | +-- extend-shallow@2.0.1
  | | | +-- map-cache@0.2.2
  | | | +-- source-map@0.5.7
  | | | +-- source-map-resolve@0.5.2
  | | | | +-- atob@2.1.1
  | | | | +-- decode-uri-component@0.2.0
  | | | | +-- resolve-url@0.2.1
  | | | | +-- source-map-url@0.4.0
  | | | | `-- urix@0.1.0
  | | | `-- use@3.1.0
  | | +-- snapdragon-node@2.1.1
  | | | +-- define-property@1.0.0
  | | | | `-- is-descriptor@1.0.2
  | | | |   +-- is-accessor-descriptor@1.0.0
  | | | |   `-- is-data-descriptor@1.0.0
  | | | `-- snapdragon-util@3.0.1
  | | |   `-- kind-of@3.2.2
  | | +-- split-string@3.1.0
  | | `-- to-regex@3.0.2
  | |   `-- safe-regex@1.1.0
  | |     `-- ret@0.1.15
  | +-- glob-parent@3.1.0
  | | +-- is-glob@3.1.0
  | | `-- path-dirname@1.0.2
  | +-- inherits@2.0.3
  | +-- is-binary-path@1.0.1
  | | `-- binary-extensions@1.11.0
  | +-- is-glob@4.0.0
  | | `-- is-extglob@2.1.1
  | +-- normalize-path@2.1.1
  | | `-- remove-trailing-separator@1.1.0
  | +-- path-is-absolute@1.0.1
  | +-- readdirp@2.1.0
  | | +-- graceful-fs@4.1.11
  | | +-- minimatch@3.0.4
  | | | `-- brace-expansion@1.1.11
  | | |   +-- balanced-match@1.0.0
  | | |   `-- concat-map@0.0.1
  | | +-- readable-stream@2.3.6
  | | | +-- core-util-is@1.0.2
  | | | +-- isarray@1.0.0
  | | | +-- process-nextick-args@2.0.0
  | | | +-- safe-buffer@5.1.2
  | | | +-- string_decoder@1.1.1
  | | | `-- util-deprecate@1.0.2
  | | `-- set-immediate-shim@1.0.1
  | `-- upath@1.1.0
  +-- cli-table-redemption@1.0.1
  +-- commander@2.13.0
  +-- cron@1.3.0
  | `-- moment-timezone@0.5.18
  +-- debug@3.1.0
  | `-- ms@2.0.0
  +-- eventemitter2@1.0.5
  +-- fclone@1.0.11
  +-- gkt@1.0.0
  +-- mkdirp@0.5.1
  | `-- minimist@0.0.8
  +-- moment@2.22.2
  +-- needle@2.2.1
  | +-- debug@2.6.9
  | +-- iconv-lite@0.4.23
  | | `-- safer-buffer@2.1.2
  | `-- sax@1.2.4
  +-- nssocket@0.6.0
  | +-- eventemitter2@0.4.14
  | `-- lazy@1.0.11
  +-- pidusage@1.2.0
  +-- pm2-axon@3.1.0
  | +-- amp@0.3.1
  | +-- amp-message@0.1.2
  | `-- escape-regexp@0.0.1
  +-- pm2-axon-rpc@0.5.1
  +-- pm2-deploy@0.3.9
  | +-- async@1.5.2
  | `-- tv4@1.3.0
  +-- pm2-multimeter@0.1.2
  | `-- charm@0.1.2
  +-- pmx@1.6.7
  | +-- deep-metrics@0.0.1
  | +-- json-stringify-safe@5.0.1
  | `-- vxx@1.2.2
  |   +-- continuation-local-storage@3.2.1
  |   | +-- async-listener@0.6.9
  |   | `-- emitter-listener@1.1.1
  |   +-- debug@2.6.9
  |   +-- extend@3.0.1
  |   +-- is@3.2.1
  |   +-- lodash.findindex@4.6.0
  |   +-- lodash.isequal@4.5.0
  |   +-- lodash.merge@4.6.1
  |   +-- methods@1.1.2
  |   +-- shimmer@1.2.0
  |   `-- uuid@3.2.1
  +-- promptly@2.2.0
  | `-- read@1.0.7
  |   `-- mute-stream@0.0.7
  +-- semver@5.5.0
  +-- shelljs@0.7.8
  | +-- glob@7.1.2
  | | +-- fs.realpath@1.0.0
  | | +-- inflight@1.0.6
  | | | `-- wrappy@1.0.2
  | | `-- once@1.4.0
  | +-- interpret@1.1.0
  | `-- rechoir@0.6.2
  |   `-- resolve@1.8.1
  |     `-- path-parse@1.0.5
  +-- source-map-support@0.5.6
  | +-- buffer-from@1.1.0
  | `-- source-map@0.6.1
  +-- sprintf-js@1.1.1
  +-- v8-compile-cache@1.1.2
  +-- vizion@0.2.13
  | `-- async@1.5.2
  `-- yamljs@0.3.0
    `-- argparse@1.0.10
      `-- sprintf-js@1.0.3
 
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.1.2 (node_modules\pm2\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
 
cs



4. 해당 폴더에 app.js 파일 작성




5. app.js 코드

1
2
3
4
5
6
7
8
9
var http = require('http');
 
var server = http.createServer(function(request, response) {
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("Hello World\n");
});
 
server.listen(8000);
 
cs



6. 웹 브라우저에서 출력 확인

* 브라우저의 환경에 따라 "localhost:8000" 으로 접속되지 않을 경우 "http://127.0.0.1:8000/" 를 입력합니다.



'Programming > Node.js' 카테고리의 다른 글

node-v10.12.0-x64 설치 및 환경 구축  (0) 2018.10.20
node-v7.4.0-x64 설치 및 환경 구축  (0) 2017.01.24


아래와 같은 에러 발생 시

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,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

* 실행 창 단축키는 "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




1
2
3
4
var curYear  = "2017";
var curMonth = "10";
var maxDay = new Date(new Date(curYear, curMonth, 1)-86400000).getDate();
 
cs


* 86400000ms 는 1일을 의미합니다.



OS Version: Windows 10

Node.js Version: node-v7.4.0-x64


1.

* http://nodejs.org/ 에서 해당 Node.js 를 다운 받습니다.

* v6.9.4 LTS : 대부분의 사용자에게 권장하는 버전.

* v7.4.0 Current : 최신 버전.


2.

*다운 받은 node-v7.4.0-x64.msi 를 실행하면 다음과 같은 화면 출력 시 Next 버튼을 눌러주세요.


3.

* 해당 체크 박스를 체크한 후에 Next 버튼을 클릭합니다.


4.

* Node.js 가 설치될 경로를 확인 후에 Next 버튼을 클릭합니다.


5.

* 설치할 프로그램에 대해서 트리 구조로 표시되고 있으며 필요에 맞게 선택 후 Next 버튼을 클릭합니다.


6.

* 설치를 진행하기 위해서 Install 버튼을 클릭합니다.


7.

* 해당 프로그램 설치 진행 시 화면입니다.


8.

* Finish 버튼을 클릭하여 설치가 마무리합니다. 이어서 Node.js 설치가 제대로 되었는지 확인을 진행하겠습니다.


9.

* Win + R 키를 누르면 위와 같이 실행 창이 나오는데 cmd 를 입력한 후에 확인 버튼을 클릭합니다.


10.

* 커맨드 창에 node -v 명령어를 입력하여 실행했을 때 위와 같이 해당 버전이 출력되면 이상 없이 설치되었다고 할 수 있습니다.


'Programming > Node.js' 카테고리의 다른 글

node-v10.12.0-x64 설치 및 환경 구축  (0) 2018.10.20
node.js 시작하기  (0) 2018.06.18

+ Recent posts