読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

Ubuntuへbluetoothでファイルを送信

Ubuntu 16.04 LTS

UbuntuデフォルトのBluetoothマネージャー(?)ではファイル送信しかできない。

スマホなどからUbuntubluetoothでファイルを送信する場合、Ubuntu SoftwareからBluetooth マネージャー (blueman)をインストール。これを起動した状態でスマホと接続し、スマホからファイルを送信すればUbuntuが受信してくれる

Kivyのインストール

目次

Kivy

kivy.org

公式サイトにあるようにKivyはPythonクロスプラットフォームNUI(Natural User Interface)

要するに、Linux, Mac, Windows, Android, iOSなどで動くGUIアプリケーションを作るためのライブラリ。pythonで簡単にGUIアプリが作れるというので勉強。マルチタッチにも対応しているとか。

MacにKivy 1.9.1をインストール

公式のインストラクションの通りにインストールすればいい。Mac用にKivy.appが用意されているのでこれを使う。

Installation on OS X — Kivy 1.9.2-dev0 documentation

Python3を使うことにする。 Kivy-1.9.1-osx-python3.7zを公式からダウンロードする。7zを解凍するにはbrewでp7zipをインストールする。そして解凍するとKivy.appができる。

あとはインストラクション通りにコマンドをコピペしていく

$ sudo mv Kivy2.app /Applications/Kivy.app
$ ln -s /Applications/Kivy.app/Contents/Resources/script /usr/local/bin/kivy

これでインストールできた。簡単。
この方法でインストールすると自動的にKivy専用の仮想環境が作られる。上記コマンドですでにリンクがはられているのでkivyというコマンドを使うことで簡単にこの仮想環境が使用できる。

この仮想環境にpipで何か入れたい場合は

$ kivy -m pip install <modulename>

pythonスクリプトを実行する場合は

$ kivy yourapplication.py

かなり使い勝手がいい。

動作テスト

公式サイトのトップに乗っている、hello worldのサンプルスクリプトを試す

hello.py

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()
$ kivy hello.py

Hello Worldという文字が出たウィンドウが現れて無事に起動できた。

Ubuntu 16.04 LTSへインストール

Pythonのバージョンは3.5.2。システムのpython3にKivy 1.9.1を入れる。 下記インストラクションに従う

Installation on Linux — Kivy 1.9.2-dev0 documentation

stable versionのppaを追加してKivyをインストールする。依存関係も全て入れてくれるので楽

$ sudo add-apt-repository ppa:kivy-team/kivy
$ sudo apt-get update
$ sudo apt-get install python3-kivy

インストール完了。Macと同様にテストプログラムを走らせる

$ python3 hello.py

うまく動いた。

Ubuntuのpyenvとanacondaの環境のpythonにインストール

失敗

失敗の記録を残しておく。ちなみに、システムのpython3にvenvで仮想環境作って試しても同じエラーでつまづいたから諦めた。

ググると仮想環境で入れようとすると、結構同じエラーで苦戦していて、特に解決策は見つからなかった。 システムにそのまま入れて使うことにした。

------------ 以下、失敗記録 ----------

KivyのインストールにはCythonが必要なのでpipでいれる。

$ pip install Cython

バージョンは、Cython 0.25.2

kivyの公式によると、kivy 1.9.1で動作チェックするときにCython 0.23を使っているので本当は0.23を使ったほうがいい。

pipでkivyを簡単にインストールできるかと思って試すと、見事にエラーが出てインストールできなかった。素直に公式サイトを見ることにした。

Installation on Linux — Kivy 1.9.2-dev0 documentation

このリンク先のInstallation in a Virtual Environmentのところを参考にする。

SDL2関係のパッケージが必要らしい。これがUbuntuに入ってなかったので書いてある通りにインストールする。いくつかはすでに入っていたので入っていないやつを書く

$ sudo apt-get install ffmpeg
$ sudo apt-get install libsdl2-dev
$ sudo apt-get install libsdl2-image-dev
$ sudo apt-get install libsdl2-mixer-dev
$ sudo apt-get install libsdl2-ttf-dev
$ sudo apt-get install libportmidi-dev
$ sudo apt-get install libswscale-dev
$ sudo apt-get install libavformat-dev
$ sudo apt-get install libavcodec-dev

これで足りないものを入れたので、あらためてkivyをpipでインストール

$ pip install kivy

エラーも出ずにインストールできた。
(実はまだこれだと実行するときにエラーが出る)

動作テスト

Hellow Worldのサンプルプログラムを試す
テキスト関係でエラーが出た

[WARNING] [Config      ] Older configuration version detected (0 instead of 14)
[WARNING] [Config      ] Upgrading configuration in progress.
[INFO   ] [Logger      ] Record log in /home/yamashita06/.kivy/logs/kivy_16-12-20_0.txt
[INFO   ] [Kivy        ] v1.9.1
[INFO   ] [Python      ] v3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
[INFO   ] [Factory     ] 179 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Text        ] Unable to find any valuable Text provider at all!
(省略)
pil - ImportError: No module named 'PIL'

PIL --> Pillow

PILがないと言われたのでPILをpipで入れようとしたらなぜかインストールできない。調べてみるとPILは開発が止まっていて、python3.5に対応していない。PillowというPILをforkしたやつが今は使われてるみたいなので、こっちを入れる

$ pip install pillow

動作テスト2

テキストのところはクリアしたが、Windowのところでエラーが出た

[INFO   ] [Logger      ] Record log in /home/yamashita06/.kivy/logs/kivy_16-12-21_6.txt
[INFO   ] [Kivy        ] v1.9.1
[INFO   ] [Python      ] v3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
[INFO   ] [Factory     ] 179 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif, img_pil (img_sdl2, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider at all!

X11が見つからないみたいなエラーも出ていたのでよくわからない。ライブラリが足りないのか・・・。

Ubuntu 16.04 LTSに最新版のblenderをインストール

インストール

現時点(2016年12月17日)のblenderの最新バージョンは2.78

Ubuntu Softwareを使ってもblenderはインストールできるが少しバージョンが古いので下記コマンドppaリポジトリを追加してインストールする

$ sudo add-apt-repository ppa:thomas-schiex/blender
$ sudo apt-get update
$ sudo apt-get install blender

これで2.78がインストールされた

numpy.deleteで行や列を削除

定義

numpy.delete(arr, obj, axis=None)

  • arrはnumpyの配列(array_like)
  • objに削除したいインデックスなどを入れる
  • axisで削除する方向を決める。行とか列とか

一部を削除したnumpyの配列を新しく返す。元のarrはそのままで変わらない

使い方

numpy配列の例

3行目のaはjupyterやipythonでaを出力させるためのもの

import numpy as np
a= np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

行を削除

行というか、1次元配列ならそのまま指定したインデックスを削除。2次元配列なら行を削除。axis=0を使う。

np.delete(a, 0, 0)
array([[4, 5, 6],
       [7, 8, 9]])

インデックスはリストで複数指定できる

np.delete(a, [0, 1], 0)
array([[7, 8, 9]])

列を削除

axis = 1を使う。2次元以上じゃないとエラーが出る

np.delete(a, 0, 1)
array([[2, 3],
       [5, 6],
       [8, 9]])

 注意点

axisをちゃんと指定しないとややこしいことになるので注意。

1次元の場合は問題ない

b = [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = np.array(b)
b
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

想像通りに削除できる

np.delete(b, 0)
array([2, 3, 4, 5, 6, 7, 8, 9])

2次元だと思い描いた通りにならない。
axisはデフォルトでNoneであり、Noneだとflattened arrayが返されてしまう。第3引数を忘れてはいけない。

a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
np.delete(a, 0)
array([2, 3, 4, 5, 6, 7, 8, 9])

Ubuntu 16.04 LTSをインストールした後にやったことまとめ

目次

ソフトウェア更新

Ubuntu Softwareで更新するだけ。ついでにEmacsもインストールするといい。

時計の表示方法

右上の時刻のところで右クリック。月日曜日とかも表示させる

入力メソッドのオンオフのホットキーの設定

右上のキーボードマークを右クリックして設定。 入力メソッドのオンオフのところのCtrl+Spaceを他のものに変更。 Emacsキーバインドとかぶる。 2つあるが両方共Zenkakuhankakuとかにしておく

lm-sensorsのインストール

端末から

$ sudo apt-get install lm-sensors

このコマンドでCPU温度がわかる

$ sensors

システム負荷インジケーターのインストール

cpuとかメモリなどの使用率を表示させる。Ubuntu Softwareでインストールできる。 「システム」や「負荷」で検索してもだめだった。「indicator」でいける。英語だけ?

一旦起動させて、右上のところに出てきたら右クリックして設定。いろいろ表示させておく。

chromeのインストール

firefoxを使ってchrome公式サイトからダウンロード。ubuntu用のものがあるので簡単。

Thunderbirdの設定

ここを参照

Thunderbirdの設定(Gmail + IMAP) - 計算物理屋の研究備忘録

デスクトップなどの日本語ディレクトリ名を英語に変更

端末から

$ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

有効にするには一旦ログアウト

ターミナル環境の構築

プロファイルの編集

端末 --> 編集 --> プロファイルの設定
ウィンドウサイズとか色とか適当に変えておく

zshのインストールしてシェルをzshへ変更

端末から

$ sudo apt-get install zsh
$ sudo chsh
/bin/zsh

有効にするには一旦ログアウト

gitのインストール

端末から

$ sudo apt-get install git

pecoのインストール

バイナリをダウンロードしてくるだけ。

github.com

peco_linux_amd64.tar.gzをダウンロード

Rictyをインストール

プログラミング向きの見やすいフォント、Rictyをインストールする。 この公式サイト通りにやればよい

プログラミング用フォント Ricty

端末から

$ sudo apt-get install fontforge
$ sudo apt-get install fonts-inconsolata
$ sudo apt-get install fonts-migmix

上記公式からricty_generator.shをダウンロードして

$ chmod 744 ./ricty_generator.sh
$ ./ricty_generator.sh auto

インストールしたら
端末 --> 編集 --> プロファイルの設定 でRictyを選んでおく。13.5pt
13.5は全角と半角がちょうど2:1らしい。大きさ的にもとりあえずこれくらいで。 Ubuntu 14.04 LTSのときはこれでフォントを変更できなくてコマンドを打つ必要があったが、16.04 LTSではGUIでマウスでポチポチすればOK。

sshの設定

いろいろ接続できるようにしておく。

keisanbutsuriya.hateblo.jp

普段使っている~/.ssh/configもコピーしておく

自分用の設定ファイルをクローン

$ git clone ユーザー名@ホスト名:repository/dotfiles.git .dotfiles

必要な設定をする。

Emacs

package.el

普段使っているパッケージをインストールする

keisanbutsuriya.hateblo.jp

auto-completeのfortran辞書だけコピーしておく

設定ファイルの同期

上記のようにgitで設定ファイルをまとめてあるので、設定はほぼ終わっている

cmigemoのインストール

端末から

$ sudo apt-get install cmigemo

python環境の構築

pyenvを使ってpython環境を構築する

keisanbutsuriya.hateblo.jp

Emacsのjediの設定もやっておく

keisanbutsuriya.hateblo.jp

TeX環境の構築

Tex Liveをapt-getでいれる。texlive-fullを入れれば全部入るが、めんどいので日本語関係のものとフォントを入れておく。texlive-lang-cjkを入れれば基本的なものはインストールされる。

$ sudo apt-get install texlive-lang-cjk
$ sudo apt-get install texlive-fonts-extra
$ sudo apt-get install texlive-fonts-recommended

tlmgrを使うにはxzdecもインストールする必要があるらしいが、今までtlmgrを使ったことがないのでとりあえず放置。

JabRefのインストール

Ubuntu Softwareからインストールするだけ

oracle Java (JRE)のインストール

oraclejavaはレポジトリを追加してからapt-getでインストールできる

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

端末からJavaコントロール・パネルを開いて設定する

$ jcontrol

これでGUIが立ち上がって設定できる。
セキュリティタブの例外サイト・リストに使用するURLを登録しておく

データ保存用HDDのマウント

HDDやUSBメモリはつなぐだけで自動的にマウントされるが、一時的なマウント場所は/media/以下になる。内蔵HDDなのできちんと/mnt/以下にマウントしておく。

フォーマット

Ubuntu14.04 LTSのデータが入っていたのでフォーマットする。自動的にマウントされていてランチャーにあるので右クリックしてフォーマット。この時にわかりやすい識別名をつけておく。もともとExt4なのでクイックフォーマットで一瞬で終わる。

マウントの設定

CUIなら/etc/fstabを編集することになるのだが、UbuntuGUIでできるの楽。Dashから「disk」で検索かけて「ディスク」というアプリケーションを起動。HDDを選んで小さな歯車のアイコンをクリックして「マウントオプションの編集」をクリック。

自動マウントオプションをオフ。デフォルトではマウントオプションや識別名がUUIDになっていてわかりづらいので識別名をLABEL=xxxxxxに変更する。そうすると自動的にマウントオプションも/mnt/xxxxxxに変わる。これでOKをクリックしてパスワードを入力して設定終了。

歯車アイコンの2つ隣の■みたいなやつをクリックして一旦アンマウント、再生ボタンみたいなのを押してマウントし直すとちゃんと/mnt/以下にくる。

MacのEmacsでフルスクリーンにする方法

この方法(Macに最新バージョンのEmacsをインストール - 計算物理屋の研究備忘録)でMacに入れたEmacsでは 左上の緑のボタンを押してもフルスクリーンになってくれない。

Emacsをフルスクリーンにする簡単な方法はEmacsで直接下記コマンドを実行する

M-x toggle-frame-fullscreen

長いのでコマンドは覚えられないが、helmを使っていればfullscreenで出てくるのでぱぱっと切り替えられる。 f11キーがこのコマンドに割り当てられているが、f11を押しても効かなかった。LinuxMacは違うっぽい。

UbuntuでJavaコントロール・パネルを開く方法

javaをインストールしてコントロール・パネルというものを開いて設定したかったのだけれど

なかなか起動のしかたがわからなくて、調べたらなんとか見つかったのでメモ。

ターミナルで次のコマンドを打つだけ

$ jcontrol