Tensorflow 2 : Build on macOS

2021년, macOS에서 최신 tensorflow 를 사용해 보려고 빌드과정을 거쳐 보았다.

macOS: build tesorflow

준비

  1. python
  • brew 등으로 최신 파이썬 설치

  • 여기서는 가상환경에서 설치한다 가정

    • pyenv, venv, conda …
  • 가상환경이 아닌 시스템 환경이면 --user 이용.

  1. 유틸 설치

numpy, wheel, keras_preprocessing 설치

  • 가상환경이 아닌 시스템 환경이면 --user 이용.

tensorflow 2.4.1 requires numpy~=1.19.2, but you have numpy 1.18.0 which is incompatible.

1
2
pip install -U pip numpy wheel
pip install -U keras_preprocessing --no-deps

설치된 패키지를 확인

1
2
3
$ pip freeze
Keras-Preprocessing==1.1.2
numpy==1.20.0

Xcode

xcode-select –install

Xcode installed on your macOS,Then execute the command:

1
sudo xcodebuild -license accept

What flags are supported by my CPU?

To check the instruction sets supported by your CPU, check the output of the following commands:

macOS

1
$ sysctl -a | grep "machdep.cpu.*features:"

Linux

1
$ cat /proc/cpuinfo | grep flags

Bazel 설치

tensorflow/configure.py 파일에서 BAZEL 버전을 찾는다. 이중 MAX 로 지시한 Bazel 버전을 사용한다.

1
2
3
_TF_CURRENT_BAZEL_VERSION = None
_TF_MIN_BAZEL_VERSION = '3.1.0'
_TF_MAX_BAZEL_VERSION = '3.99.0'

https://docs.bazel.build/versions/4.0.0/install-os-x.html 를 참고해서

https://github.com/bazelbuild/bazel/releases 에서 MIN, MaX 사이의 적합한 installer 버전을 설치한다.

다운로드

다운로드한다. 예를 들어 3.7.2 버전의 sh 설치 파일은 bazel-3.7.2-installer-darwin-x86_64.sh 이다.

1
2
$ export BAZEL_VERSION=3.7.2
$ curl -fLO "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh"

Run the installer

Run the Bazel installer as follows:

1
2
chmod +x "bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh"
./bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh --user

--user 플래그로 설치시 환경변수에 지정

1
export PATH="$PATH:$HOME/bin"
1
2
~$ bazel --version
bazel 3.7.2

bazel 설치: brew

~$ brew install bazel

빌드

텐서플로우 소스를 준비해서 bazel 을 사용해 빌드한다.

소스 준비

1
2
3
4
5
6
7
$ git clone https://github.com/tensorflow/tensorflow.git
'tensorflow_src'에 복제합니다...
remote: Enumerating objects: 1081830, done.
remote: Total 1081830 (delta 0), reused 0 (delta 0), pack-reused 1081830
오브젝트를 받는 중: 100% (1081830/1081830), 648.00 MiB | 5.20 MiB/s, 완료.
델타를 알아내는 중: 100% (881614/881614), 완료.
Updating files: 100% (24312/24312), 완료.

v2.3.2 빌드

git 체크아웃

1
2
3
4
5
6
7
8
9
$ git tag
0.12.0-rc0
...
v2.3.0
v2.3.1
v2.3.2


$ git checkout v2.3.2

필요한 유틸리티 패키지 설치

1
2
3
4
5
6
7
8
$ python -V
Python 3.8.7


$ pip install -U pip wheel
$ conda install "numpy>=1.8,<1.19"

$ pip install -U keras_preprocessing --no-deps

configure

configure 쉘 스크립이 LFCR 로 되어 ㅇㅣㅆ어서 CR로 변경해야 한다.

1
2
$ mv configure configure.orig
$ sed $'s/\r$//' configure.orig > configure

configure

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
$ ./configure
You have bazel 3.7.2 installed.
Please specify the location of python. [Default is /Users/qkboo/.pyenv/versions/tf2_build/bin/python3]:


Found possible Python library paths:
/Users/qkboo/.pyenv/versions/tf2_build/lib/python3.8/site-packages
Please input the desired Python library path to use. Default is [/Users/qkboo/.pyenv/versions/tf2_build/lib/python3.8/site-packages]

Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: n
No OpenCL SYCL support will be enabled for TensorFlow.

Do you wish to build TensorFlow with ROCm support? [y/N]: n
No ROCm support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: n
No CUDA support will be enabled for TensorFlow.

Do you wish to download a fresh release of clang? (Experimental) [y/N]: n
Clang will not be downloaded.

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native -Wno-sign-compare]:


Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n
Not configuring the WORKSPACE for Android builds.

Do you wish to build TensorFlow with iOS support? [y/N]: y
iOS support will be enabled for TensorFlow.

Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl # Build with MKL support.
--config=monolithic # Config for mostly static monolithic build.
--config=ngraph # Build with Intel nGraph support.
--config=numa # Build with NUMA support.
--config=dynamic_kernels # (Experimental) Build kernels into separate shared objects.
--config=v2 # Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws # Disable AWS S3 filesystem support.
--config=nogcp # Disable GCP support.
--config=nohdfs # Disable HDFS support.
--config=nonccl # Disable NVIDIA NCCL support.
Configuration finished

빌드 시작

Intel 기반의 macOS에서 기본 배포되는 tensorflow@2.0 을 설치하고 tensorflow 를 실행하면,

1
2
3
4
5
6
7
8
9
10
11
(tf2_p37)~$ python
Python 3.7.9 (default, Aug 31 2020, 07:22:35)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>>
>>> tf.add(1,2).numpy()
2021-02-01 14:11:37.000601: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations: SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags.
2021-02-01 14:11:37.001166: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 8. Tune using inter_op_parallelism_threads for best performance.
3

특화 명령 을 –copt 부분에 명시해서 빌드한다.

bazel build: Intel CPU 특화 명령 세트

빌드할 때 아래와 같이 cpu option을 추가로주면 해당 cpu에 대해 최적화된 빌드로 진행됩니다. 아래의 copt 들은 머신마다 다르며, tensorflow warning을 보고 적절히 추가해주면 됩니다.

1
$ bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package

pip에 배포된 패키지와 동일하게 진행할 것이라면…

1
bazel build –config=opt //tensorflow/tools/pip_package:build_pip_package

GPU로 Tensorflow를 사용하고 싶다면… (위에 반드시 CUDA 옵션 선택 메시지에서 Y를 눌러야합니다. 그리고 아래와 같은 명령어를 입력하세요.)

1
$ bazel build –config=opt –config=cuda //tensorflow/tools/pip_package:build_pip_package

GPU cuda 를 포함한 빌드와 CpU 특화 를 함께

1
$ bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --config=cuda //tensorflow/tools/pip_package:build_pip_package

패키지 빌드

pip 패키지를 생성하기 .whl 설치 패키지를 생성한다.
패키지 추출

1
./bazel-bin/tensorflow/tools/pip_package/build_pip_package ../tensorflow_pkg

v2.4.1 빌드

1
2
3
4
5
6
7
8
9
10
$ git tag
0.12.0-rc0
...
v2.4.0
v2.4.0-rc0
v2.4.0-rc1
v2.4.0-rc2
v2.4.0-rc3
v2.4.0-rc4
v2.4.1
1
git checkout v2.4.1

configure 로 CPU 기반 지원을 구성한다.

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
$ ./configure
You have bazel 3.7.2 installed.
Please specify the location of python. [Default is /Users/qkboo/.pyenv/versions/miniconda3-latest/bin/python3]: /Users/qkboo/.pyenv/versions/tf2_p38/bin/python


Found possible Python library paths:
/Users/qkboo/.pyenv/versions/tf2_p38/lib/python3.8/site-packages
Please input the desired Python library path to use. Default is [/Users/qkboo/.pyenv/versions/tf2_p38/lib/python3.8/site-packages]

Do you wish to build TensorFlow with ROCm support? [y/N]: n
No ROCm support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: n
No CUDA support will be enabled for TensorFlow.

Do you wish to download a fresh release of clang? (Experimental) [y/N]: n
Clang will not be downloaded.

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:


Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n
Not configuring the WORKSPACE for Android builds.

Do you wish to build TensorFlow with iOS support? [y/N]: y
iOS support will be enabled for TensorFlow.

Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
--config=mkl # Build with MKL support.
--config=mkl_aarch64 # Build with oneDNN support for Aarch64.
--config=monolithic # Config for mostly static monolithic build.
--config=ngraph # Build with Intel nGraph support.
--config=numa # Build with NUMA support.
--config=dynamic_kernels # (Experimental) Build kernels into separate shared objects.
--config=v2 # Build TensorFlow 2.x instead of 1.x.
Preconfigured Bazel build configs to DISABLE default on features:
--config=noaws # Disable AWS S3 filesystem support.
--config=nogcp # Disable GCP support.
--config=nohdfs # Disable HDFS support.
--config=nonccl # Disable NVIDIA NCCL support.
Configuration finished

파이썬 실행 가능을 확인하고 configure 후 빌드한다.

1
2
3
4
5
6
7
8
9
10
11
12
$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
...
...

INFO: Build options --action_env and --python_path have changed, discarding analysis cache.
INFO: Analyzed target //tensorflow/tools/pip_package:build_pip_package (406 packages loaded, 31116 targets configured).
INFO: Found 1 target...
Target //tensorflow/tools/pip_package:build_pip_package up-to-date:
bazel-bin/tensorflow/tools/pip_package/build_pip_package
INFO: Elapsed time: 16525.185s, Critical Path: 542.13s
INFO: 18390 processes: 150 internal, 18240 local.
INFO: Build completed successfully, 18390 total actions
  • macbook pro 15(2015), 8GB 에서 약 5시간 소요.

패키지 빌드

pip 패키지를 생성하기 .whl 설치 패키지를 생성한다.

1
2
3
4
./bazel-bin/tensorflow/tools/pip_package/build_pip_package ../tensorflow_pkg

$ $ ls -l ../tensorflow_pkg/
-rw-r--r-- 1 qkboo admin 167M 2 1 13:54 tensorflow-2.4.1-cp38-cp38-macosx_11_0_x86_64.whl

패키지 설치

그리고 현재 파이썬 환경에 텐서 플로우를 설치한다

1
2
3
4
5
$ pip install ../tensorflow_pkg/tensorflow-2.4.1-cp38-cp38-macosx_11_0_x86_64.whl

...

Successfully installed absl-py-0.11.0 astunparse-1.6.3 cachetools-4.2.1 certifi-2020.12.5 chardet-4.0.0 flatbuffers-1.12 gast-0.3.3 google-auth-1.24.0 google-auth-oauthlib-0.4.2 google-pasta-0.2.0 grpcio-1.32.0 h5py-2.10.0 idna-2.10 markdown-3.3.3 numpy-1.19.5 oauthlib-3.1.0 opt-einsum-3.3.0 protobuf-3.14.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 requests-2.25.1 requests-oauthlib-1.3.0 rsa-4.7 six-1.15.0 tensorboard-2.4.1 tensorboard-plugin-wit-1.8.0 tensorflow-2.4.1 tensorflow-estimator-2.4.0 termcolor-1.1.0 typing-extensions-3.7.4.3 urllib3-1.26.3 werkzeug-1.0.1 wrapt-1.12.1

빌드 후에 소스 트리 디렉토리에서 벗어나 설치된 텐서 플로우를 확인해 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ cd ~
$ python

>>> import tensorflow as tf



>>> import tensorflow as tf
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
b'Hello, TensorFlow!'



>>> t = tf.constant('logcg')
2020-01-18 20:04:43.088104: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7fefdc983db0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-18 20:04:43.088134: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version

[OpenCV] virtualenv 이용 설치

OpenCV 설치

OpenCV 를 파이썬 기본 패키지 관리자 pip 와 venv 가상환경을 이용해서 윈도우즈, 맥 및 리눅스에서 OpenCV 를 설치하는 과정을 살펴보겠다.

    1. 윈도우즈에서
    1. macOS에서
    1. Linux에서

1) 윈도우즈 pip 기반 OpenCV 설치

윈도우 기반에서 OpenCV 를 사용하기 위해서 pip 기반으로 설치를 해보자.

whl 파일로 설치

윈도우에서 opencv를 빌드된 버전을 설치하기 위해서 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 에 있는 .whl 파일을 다운로드 받느다.

1
> pip install c:\downloads\opencv_python‑3.3.1‑cp36‑cp36m‑win_amd64.whl

pip

OpenCV의 main module만 사용한다면 아래처럼 설치하면 됩니다.

1
> pip install opencv-python

만약 main module과 extra module을 같이 사용하고 싶다면 아래처럼 설치합니다.

1
> pip install opencv-contrib-python

2) virtualenv 가상환경에서 openCV 설치

Python 가상환경과 Opencv

파이썬 개발시 virtualenv 를 사용한다면 OpenCV 라이브러리를 연결해 줄 필요가 있다. virtualenv 가상환경 생성시 파이썬 라이브러리는 복사가 안된다 그래서 가상환경 생성후에 cv2.so 라이브러리를 링크해줄 필요가 있다.

가상환경에 cv2.so 연결하기

python2 가상환경 cv3python2 가 있고, 여기에 OpenCV 를 사용하려면 다음 같이 cv2.so 라이브러리를 링크해 준다.

1
2
$ cd ~/.virtualenvs/cv3python2/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

역시 python3 가상환경 cv3python3 가 있다면 python3 라이브러리에 있는 cv2.so 라이브러리를 링크해 준다.

1
2
$ cd ~/.virtualenvs/cv3python3/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/dist-packages/cv2.cpython-34m.so cv2.so

또한 cv2.so를 사용하기 위해서 각 가상환경에 numpy를 설치해 준다. Raspberry Pi 2에서 numpy를 pip로 설치할 때 약 10분 이상 소요된다.

1
2
3
4
5
$ workon cv3python2
(cv3python2) :~/ $ pip install numpy

$ workon cv3python3
(cv3python3) :~/ $ pip install numpy

마직막으로 파이썬을 실행하고 cv2를 테스트한다.

1
2
3
4
5
6
7
8
(cv3python3) ~/$ python
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

OpenCV 테스트

https://cinema4dr12.tistory.com/1283

파이썬을 실행해 cv2 라이브러리를 사용해 보자.

1
2
3
4
5
6
7
8
$ python
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

시스템에서 파이썬이 두 개 이상 설치되어 있으면 일반적을 Python2.7 버전이 기본 파아썬 이다.

1
2
3
4
5
6
7
8
$ python3
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>>

참조

[OpenCV] anaconda 이용 설치

OpenCV 설치

OpenCV 를 설치하기 위해서 소스 빌드, 패키지 설치 방법이 있다. 여기서 pip 기반 가상환경 그리고 Anaconda 를 사용한다는 가정에서 윈도우즈, 맥에서 OpenCV 를 설치하는 과정을 살펴보겠다.

    1. 윈도우즈에서
    1. macOS에서
    1. Linux에서

1) 윈도우즈에서 OpenCV 설치

윈도우 기반에서 OpenCV 를 사용하기 위해서 Anaconda 배포본을 사용하는 것이 가장 쉽다.

whl 파일로 설치

윈도우에서 opencv를 빌드된 버전을 설치하기 위해서 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 에 있는 .whl 파일을 다운로드 받느다.

1
> pip install c:\downloads\opencv_python‑3.3.1‑cp36‑cp36m‑win_amd64.whl

pip

OpenCV의 main module만 사용한다면 아래처럼 설치하면 됩니다.

1
> pip install opencv-python

만약 main module과 extra module을 같이 사용하고 싶다면 아래처럼 설치합니다.

1
> pip install opencv-contrib-python

conda 명령으로 설치하기

Anaconda 3가 설치되어 있다면 명령어 한 줄 입력만으로도 거의 최신 버전(글 작성시 버전 3.6.0)의 Python-OpenCV 라이브러리를 설치할 수 있다:

1
> conda install -c conda-forge opencv

conda-forge에 등록되어 있는 OpenCV 라이브러리에 대한 상세한 설명은 링크를 통해 확인할 수 있습니다. 필요한 경우, python virtualenv를 생성하여 개발환경 패키지를 관리할 수 있다.

OpenCV 3.3의 가장 큰 변화는 Deep Learning in OpenCV 라고 할 수 있겠습니다. 해당 링크에서 Deep Learning 관련 추가된 사항을 확인할 수 있습니다. 이외에 자세한 변경 로그는 OpenCV Change Logs Version:3.3을 참고하시면 되겠습니다.

여담으로 최신 버전 OpenCV 3.3.1 버전 이후에는 JavaScript Interface가 추가되어 인터랙티브 웹-기반 OpenCV 어플리케이션 구현이 공식적으로 가능해졌다고 한다.


OpenCV 테스트

https://cinema4dr12.tistory.com/1283

파이썬을 실행해 cv2 라이브러리를 사용해 보자.

1
2
3
4
5
6
7
8
$ python
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

시스템에서 파이썬이 두 개 이상 설치되어 있으면 일반적을 Python2.7 버전이 기본 파아썬 이다.

1
2
3
4
5
6
7
8
$ python3
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>>

Python 가상환경과 Opencv

파이썬 개발시 virtualenv 를 사용한다면 OpenCV 라이브러리를 연결해 줄 필요가 있다. virtualenv 가상환경 생성시 파이썬 라이브러리는 복사가 안된다 그래서 가상환경 생성후에 cv2.so 라이브러리를 링크해줄 필요가 있다.

가상환경에 cv2.so 연결하기

python2 가상환경 cv3python2 가 있고, 여기에 OpenCV 를 사용하려면 다음 같이 cv2.so 라이브러리를 링크해 준다.

1
2
$ cd ~/.virtualenvs/cv3python2/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

역시 python3 가상환경 cv3python3 가 있다면 python3 라이브러리에 있는 cv2.so 라이브러리를 링크해 준다.

1
2
$ cd ~/.virtualenvs/cv3python3/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/dist-packages/cv2.cpython-34m.so cv2.so

또한 cv2.so를 사용하기 위해서 각 가상환경에 numpy를 설치해 준다. Raspberry Pi 2에서 numpy를 pip로 설치할 때 약 10분 이상 소요된다.

1
2
3
4
5
$ workon cv3python2
(cv3python2) :~/ $ pip install numpy

$ workon cv3python3
(cv3python3) :~/ $ pip install numpy

마직막으로 파이썬을 실행하고 cv2를 테스트한다.

1
2
3
4
5
6
7
8
(cv3python3) ~/$ python
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>

Gstreamer

1
$ sudo apt install python3-gst-1.0

참조

openSUSE - 과학계산을 위한 Python, Jupyter Notebook

이 글은 OpenSuse LEAP 15 에서 과학계산을 위한 파이썬 환경을 위한 Jupyter Notebook을 설치하는 과정을 요약하고 있다.

이 글에서는 시스템 패키지로 Python3, jupyter-notebook 을 설치하고, 파이썬 가상환경에서 과학계산 파이썬 모듈을 설치한 후에 Jupyter notebook 을 운영하도록 한다.

과학계산을 위한 Python Jupyter 환경

아래 같은 플랫폼에서 시스템 패키지 소프트웨어와 파이썬 모듈을 설치하는 과정이다.

  • Raspberry Pi 3
  • openSUSE LEAP 42.3, 15.0, 15.1
  • Jupyter Notebook
  • Python 그래프 matplotlib 및 pillow 이미지 라이브러리
  • 과학계산 모듈: numpy, scipy 등
  • 파이썬 가상환경
    • pandas
자세히 보기

Python 과학계산을 위한 Jupyter Notebook - macOS

과학계산을 위한 Jupyter 설치 및 구성까지 요약하고 있다.

과학계산을 위한 Python Jupyter

Raspberry Pi 3 위에 설치한 openSUSE LEAP 42.3 과 15.0 에서 과학계산을 위한 Python 개발환경과 Jupyter Notebook 환경을 정리한다.

  • 개발 프론트 엔드: Jupyter
  • 과학계산 모듈: numpy, scipy 등

Python과 Virtualenv 환경을 더 알고 싶으면 다음 두 링크에 자세한 설명이 있다.

자세히 보기

Python - 과학계산을 위한 Jupyter(pip)

과학계산을 위한 Python3 및 pip를 사용한 scipy, jupyter 설치 및 구성을 요약하고 있다.

https://packaging.python.org/guides/installing-scientific-packages/

과학계산을 위한 Python Jupyter

과학계산을 위한 Python 과 Jupyter Notebook 환경을 정리한다.

  • 개발 프론트 엔드: Jupyter
  • 과학계산 모듈: numpy, scipy 등
자세히 보기

Python - 과학계산을 위한 Jupyter(Armbian)

Odroid C2, Raspberry Pi 계열의 ARM CPU를 위한 Armbian 에서 과학계산을 위한 Jupyter 설치 및 구성까지 요약하고 있다.

https://packaging.python.org/guides/installing-scientific-packages/

과학계산을 위한 Python Jupyter

과학계산을 위한 Python 모듈을 시스템 패키지로 설치하고 pip 를 사용해서 Jupyter Notebook 을 설치하고 사용하는 과정을 정리했다.

  • 개발 프론트 엔드: Jupyter
  • 과학계산 모듈: numpy, scipy, pandas
자세히 보기

Python - 과학계산을 위한 Jupyter(Armbian)

Debian 계열의 ARM CPU를 위한 Armbian 에서 과학계산을 위한 Jupyter 설치 및 구성까지 요약하고 있다.

https://packaging.python.org/guides/installing-scientific-packages/

과학계산을 위한 Python Jupyter

과학계산을 위한 Python 과 Jupyter Notebook 환경을 정리한다.

  • 개발 프론트 엔드: Jupyter
  • 과학계산 모듈: numpy, scipy 등
자세히 보기

Raspberry Pi 3 64bit OS openSUSE: Nginx, Node JS, Jupyter

Raspberry Pi 3 64bit OS openSUSE 는 이글은 5개 글타래로 구성되며, openSUSE 설치, 개발도구 구성 및 서버 구축 사용에 대해 작성한다.

Opensuse 에서 Raspberry Pi 3를 위한 64bit OS openSESE Leap 42.2 을 제공하고 있다.

  1. Install 64bit openSUSE Leap 42.3 / JeOS
  2. openSUSE: Managing Service daemon
  3. openSUSE: Basic OS Security for Server
  4. Install & Configuration - Nginx, Node JS, Jupyter
  5. Build MongoDB 3.4.x
자세히 보기

Python - Build python source

2015년 쯤 작성한 것으로 Raspberry Pi, Orange Pi, Odroid SBC 보드에서 3.4를 빌드했다. 2017년 현재 배포본, Debian Jessie, Ubuntu Xeniel 등은 3.4, 3.5가 내장되어 배포되고 있다.
Python 3.6 이상 최신 소스를 빌드하는데 참고할 수 있다.

Build Python 3.4

Raspbian Wheezy에는 3.2가 설치되어 있다. Jessie 가 출시된 이후에 3.2에 대한 모듈 의존성 관리가 되지 않고 있어서 3.4 이상이 설치가 필요하다.

SSL/TLS 지원을 하기 위해 libssl, openssl 라이브러리를 설치한다.

1
2
$ sudo apt update
$ sudo apt install libssl-dev openssl

Python3.4를 다운로드하고 컴파일하고 설치한다.
Raspbian Weezy 에는 Python3.2가 있어서, 최신 3.4를 설치하려면 다운로드해서 컴파일 하면 된다.

1
2
3
4
$ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
$ tar xvzf Python-3.4.3.tgz
$ cd Python-3.4.3/
$ ./configure

Raspberry Pi 2에서 빌드시 꽤 많은 시간을 사용한다.

1
2
3
4
5
$ ./configure
...
real 2m16.512s
user 1m16.360s
sys 0m20.630s

컴파일하고 빌드시 한 시간 이상 필요하다.

1
2
3
4
5
6
$ make                  # 한 시간 소요
$ sudo make install
...
real 16m40.747s
user 15m51.550s
sys 0m24.030s

크로스컴파일 환경을 사용할 수 있다.