ギリギリジンジン

なんでもギリギリだ。

MacBook Pro+Paralles+Ubuntuでスクリーンショットの取得方法

Mac+Paralles上のUbuntuスクリーンショットを取得する方法

MacBook ProにはPrint Screenボタンがない。スクリーンショットを取得するにはPrint Screenボタンを必要とするUbuntuでどうやってスクリーンショットを取るのか。

Mac メニュー バーの[ II ] メニューから、[デバイス]-[キーボード]-[PrintScreen]を選択する。

Parallels Desktop の仮想 PrintScreen ボタン

www.parallels.com

使い方はこちら参照。

kledgeb.blogspot.com

Ubuntuの画面をMacスクリーンショットで取得する方法

Parallesのメニュー[表示]-[スクリーンショットを取得する]からも可能。

pngファイルがデスクトップに作成される。

kb.parallels.com

JupyterをVisual Studio Codeから使う

www.amazon.co.jp

WebアプリであるJupyterですが、これをVSCode上で扱うことも可能です。これには以下の2通りの方法があります。

1つは、Pythonソースコードと特別なコメントである#%%を追加し、このコメントで囲まれた部分をJupyterのセルとみなして実行できるようにする機能です。PythonのコードなのでVSCodeのすべての機能が使える一方、実行結果は別のウィンドウで表示され、Jupyter Notebookとして保存できます。さらに、データビューアで変数に格納したデータを見たり、セル単位のデバッグを行うことも可能です。

もう1つは、VSCodeの中でWebアプリと同様のJupyter Notebookを表示し、セルを編集、実行する機能です。これは既存のJupyterと互換性がある一方、デバッグなどVSCodeの機能の一部が使えません。

本節では、前者の方法について簡単に紹介していきます。

プロジェク用のディレクトリに移動して準備。

$ cd /path/to/project
$ pyenv local 3.10.8
$ python -m venv -.venv

このフォルダをVSCodeで開く。 VSCodeのターミナルから、Jupyterと追加ライブラリをPandas、Matplotlib、seabornをインストール。

$ pip install jupyter pandas matplotlib seaborn
Collecting jupyter
  Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Collecting pandas
  Downloading pandas-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.1/12.1 MB 21.2 MB/s eta 0:00:00
Collecting matplotlib
(中略)
[notice] A new release of pip available: 22.2.2 -> 22.3
[notice] To update, run: pip install --upgrade pip

Pandasに付属するデータセットを準備。(ここ書籍のURLだとうまく行かないよ〜)

$ curl  -OL https://datahub.io/machine-learning/iris/r/iris.csv
$ head iris.csv 
sepallength,sepalwidth,petallength,petalwidth,class
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa

hoge.pyを作成。

#%%
import pandas as pd

#%%
df = pd.read_csv("iris.csv")

%%の上に「Run Cell」(セルの実行)と文字が現れるのでクリックして実行する。または、Shift+Enterで実行。

実行結果が新しいタブが開いて表示される。

(以下の内容も書籍の通りでは動かないので修正)

#%%
df.head

#%%
df.hist(by="class", column="sepallength", sharex=True, sharey=True)

#%%
import seaborn as sns

sns.pairplot(df, hue='class')

Python Interactiveタブの最上部にあるSaveボタンから、グラフや表を含めてJupyter Notebookとして出力できる。

同じく上部のVariablesボタンを押下すると、現在の変数一覧を表示される。変数をダブルクリックなどしてみよう。

www.amazon.co.jp

Ubuntu22の標準ディレクトリ(ドキュメント、デスクトップ等)を日本語から英語にする

構成

以下のコマンドを実行。

$ LANG=C xdg-user-dirs-gtk-update

ウィンドウが開くので、" Don't ask me this again " にチェックを入れて、[ Update Names ] をクリック。

でもこれやったらファイルクスプローラ(←正式名称は?)のサイドバーは日本語のままで「ドキュメント」をクリックしてもDocumentを開いてくれるわけでなく無反応になる。だめじゃん。。。と思ったら、いつのまにか英語表記に変わっていた。

www.rough-and-cheap.jp

MacBoo Pro+Pallarels上のUbuntu 22の時間がズレる

構成

Pallarelsの問題かな?

これは関係あるかな? ↓

www.fuukemn.biz

とりあえず、大きくずれているときはntpupdateで合わせるようにしよう。これと同等のtimedatectlコマンドは?

$ sudo apt install ntpdate
$ sudo ntpdate ntp.nict.jp

Ubuntu22のターミナルのプロンプトがやたらと長いから短くする

username@hostname:/lib/gnome-settings-daemon-3.0/gtk-modules$ pwd
/lib/gnome-settings-daemon-3.0/gtk-modules

プロンプトが長い!邪魔!

~/.bashrcを編集する。\wを\Wにする。小文字を大文字。

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
↓
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

設定を反映する。

$ source ~/.bashrc 

こうなった。

username@hostname:gtk-modules$ pwd
/lib/gnome-settings-daemon-3.0/gtk-modules

参考 ↓

qiita.com

Ubuntu22にPythonをインストール(pyenvとvenvを使う)

環境

  • Ubuntu 22.04.1 LTS
  • pyenv 2.3.5
  • Python 3.10.8(venvを含む)

-

OS標準インストールのPython3は、OSを安定させるためにもむやみなアップグレードやパッケージ追加を避けたい。

Pythonの標準機能であるpyenvとvenvを使いこなそう。

pyenvを用いると、指定した特定のバージョンのPython実行環境を導入することができ、さらに複数のバージョンをそれぞれ異なるディレクトリに収納して切り替えることができるようになる。これにより、プロジェクトごとに適したバージョンの実行環境を用意することができる。

pyenvとは - 意味をわかりやすく - IT用語辞典 e-Words

venvは、もともと「virtualenv」として知られていた外部のツールがPython 3.3で標準として取り込まれたもの。

シェル上で「python3 -m venv 環境名」という書式で新しい環境を構築することができ、環境名と同じ名前のディレクトリが新たに作成される。当該環境上でpipなどを使ってパッケージを導入すると、他の環境には影響を与えることなくその環境でのみパッケージを利用できるようになる。

複数のプロジェクトが異なるパッケージを利用しており、それらが競合して同時に利用するのに不都合な場合などに、プロジェクトごとに独立した環境を簡単に用意することができる。

venvとは - 意味をわかりやすく - IT用語辞典 e-Words

pyenvをインストールする

MacWindowsは、公式ドキュメントの手順に従うといいが、Linuxの場合は別プロジェクトであるpyenv installerを使用するのがいい。

事前準備としてgitをインストールする。

$ sudo apt install git

curlをインストール

$ sudo apt install curl

任意のPythonバージョンを導入するために必要なコンパイル環境を整える。(Suggested build environmentより)

$ sudo apt update
$ sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

インストール

バージョンを指定してインストールする場合の例としてドキュメントには以下の記述があるが、v2.2.5なんてタグはなさそうだし、タグ指定して動作するかは未確認。

$ export PYENV_GIT_TAG=v2.2.5
$ curl https://pyenv.run | bash

最新版をインストールする場合は以下の通り。

$ curl https://pyenv.run | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   270  100   270    0     0    203      0  0:00:01  0:00:01 --:--:--   203
Cloning into '/home/tokushima/.pyenv'...
remote: Enumerating objects: 1007, done.
(中略)

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to 
~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# Restart your shell for the changes to take effect.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"

最後のメッセージの通りに.bashrcに設定を書き込もう。

$ cat << 'EOF' >> ~/.bashrc

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

EOF

シェルを再起動

exec $SHELL

バージョン確認

$ pyenv --version
pyenv 2.3.5
pyenvのアップデート
pyenv update
pyenvのアンインストール
$ rm -fr ~/.pyenv

あと、.bash_profileに追加した設定を消しておく。 最後にシェルを再起動。

exec $SHELL
pyenvの使い方

インストール可能なバージョンを表示する。

$ pyenv install --list
(中略)
  3.10.0
  3.10-dev
  3.10.1
  3.10.2
  3.10.3
  3.10.4
  3.10.5
  3.10.6
  3.10.7
  3.10.8
  3.11.0
  3.11-dev
  3.12-dev
(中略)

バージョン3.10.8をインストールする。

$ pyenv install 3.10.8

インストール済みの使用可能なバージョンを確認する。システムのPythonに戻すときはにsystemを指定する。

$ pyenv versions
* system (set by /home/tokushima/.pyenv/version)
  3.10.8

使用するバージョンを切り替える。

pyenv shell <version> -- select just for current shell session
pyenv local <version> -- automatically select whenever you are in the current directory (or its subdirectories)
pyenv global <version> -- select globally for your user account

プロジェクトフォルダでlocalオプションを指定するのがいいと思う。使用するバージョンを指定する。

$ pyenv local 3.10.8
$ python --version
Python 3.10.8
$ ls -a
.  ..  .python-version
$ cat .python-version 
3.10.8
venvの使い方

venv --- 仮想環境の作成 — Python 3.10.6 ドキュメント

ヘルプの表示

$ python -m venv -h

プロジェクトフォルダで仮想環境を作る。

$ python -m venv .venv
$ ls -a
.  ..  .python-version  .venv

このフォルダをVSCodeで開くと自動で反映される。

コマンドラインで仮想環境を有効にするには

$ source ./venv/bin/activate

以上