金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする |
【目次】
UbuntuUbuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -yV upgrade sudo /sbin/shutdown -r now
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Python, pip のコマンドでの起動のまとめ.
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明している.
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
行列の積, 主成分分析, SVD, k-Means クラスタリングを実行し,性能を確認する.
次のPython プログラムの実行
※ Python プログラムを動かすために, Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.
import time import numpy import numpy.linalg import sklearn.decomposition import sklearn.cluster X = numpy.random.rand(2000, 2000) Y = numpy.random.rand(2000, 2000) # 行列の積 a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a) # 主成分分析 pca = sklearn.decomposition.PCA(n_components = 2) a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a) # SVD a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a) # k-means a = time.time(); kmeans_model = sklearn.cluster.KMeans(n_clusters=10, random_state=10).fit(X) labels = kmeans_model.labels_ print(time.time() - a)
実行結果の例
sudo pip install -U virtualenv virtualenv-wrapper sudo pip3 install -U virtualenv virtualenv-wrapper echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile source ~/.profile
エラーメッセージが出ていないことを確認
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenv-wrapper.sh touch ~/.profile echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile source ~/.profile
virtualenv-wrapper の使い方
which python3 python3 --version
Ubuntu 18.04 での実行結果の例
名前: py36
使用する Python: python3
source /usr/local/bin/virtualenv-wrapper.sh mkvirtualenv --python=/usr/bin/python3 py36
lsvirtualenv
「py36」という新しい Python 環境が作成されたことが分かる
新しく端末を開き、次のコマンドを実行する.
「workon py36」は、py36 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.
source /usr/local/bin/virtualenv-wrapper.sh workon py36 which python which pip
source /usr/local/bin/virtualenv-wrapper.sh workon py36 python print(1 + 2) exit()
Ubuntu 18.04 での実行結果の例
source /usr/local/bin/virtualenv-wrapper.sh mkvirtualenv --python=/usr/bin/python py27
lsvirtualenv
「py27」という新しい Python 環境が作成されたことが分かる
新しく端末を開き、次のコマンドを実行する.
「workon py27」は、py27 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.
source /usr/local/bin/virtualenv-wrapper.sh workon py27 which python which pip
source /usr/local/bin/virtualenv-wrapper.sh workon py27 python print(1 + 2) exit()
ls ~/.virtualenvs
source /usr/local/bin/virtualenv-wrapper.sh workon py36 which pip which easy_install
source /usr/local/bin/virtualenv-wrapper.sh workon py27 which pip which easy_install
source /usr/local/bin/virtualenv-wrapper.sh workon py36 pip list
source /usr/local/bin/virtualenv-wrapper.sh workon py27 pip list
https://github.com/spyder-ide/spyder に記載の手順に従う
※ Python の仮想環境を有効化したいときに限る
source /usr/local/bin/virtualenv-wrapper.sh workon ai
sudo pip3 install -U PyQT5 sudo pip3 install -U git+https://github.com/spyder-ide/spyder-kernels sudo pip3 install -U git+https://github.com/spyder-ide/qtpy cd /tmp sudo git clone https://github.com/spyder-ide/spyder.git cd spyder git pull python bootstrap.py sudo python3 setup.py install
「spyder3」で、試しに起動してみる.
sudo apt -y update sudo apt -y install swig
http://www.swig.org/Doc1.3/Python.html#Python_nn6 に記載のサンプルプログラム
%module example %{ #define SWIG_FILE_WITH_INIT #include "example.h" %} int fact(int n);
#include "example.h" int fact(int n) { if (n < 0){ /* This should probably return an error, but this is simpler */ return 0; } if (n == 0) { return 1; } else { /* testing for overflow would be a good idea here */ return n * fact(n-1); } }
int fact(int n);
#!/usr/bin/env python """ setup.py file for SWIG example """ from distutils.core import setup, Extension example_module = Extension('_example', sources=['example_wrap.c', 'example.c'], ) setup (name = 'example', version = '0.1', author = "SWIG Docs", description = """Simple swig example from docs""", ext_modules = [example_module], py_modules = ["example"], )
端末で次のように操作
source /usr/local/bin/virtualenv-wrapper.sh workon py36 swig -python example.i sudo python3 setup.py build_ext --inplace ls -la example.* build
import example example.fact(4) exit()