さわやかに

Pythonのことだったり子供のことだったり

Pythonのダウンロード方法(Windows10)

備忘録

パソコンを新調したので新しいPCにPythonをダウンロードしました。
せっかくなのでPythonのダウンロード方法を残しておきたいと思います。

2021/9/11の最新バージョンは3.9.7のようです。(11/4時点では3.10となっていました)

環境:Windows10

サイトからのダウンロード手順

Pythonサイトにアクセスする
自分でページを検索して見つけたい方は「Python ダウンロード」と検索をかければ一番上に出てくるでしょう
www.python.org

Downloads > Windows をクリック
f:id:h_267_sunny:20211105234534p:plain
特段理由がなければPython 2ではなくPython 3をダウンロードしましょう
f:id:h_267_sunny:20211105234123p:plain
一番下までスクロールして、FilesのWindows installer(64-bit)をクリック
f:id:h_267_sunny:20211105234651p:plain
ダウンロードしたexeファイルを開く
f:id:h_267_sunny:20211105235048p:plain

インストール手順

Add Python X.X to PATHにチェックを入れます。これでパスが通ります。
コマンドプロンプトpythonと入力するだけでインタプリタが起動したり、pipとタイプするとパッケージをインストールできるようになります
次に進むにはCustomize installationをクリック
f:id:h_267_sunny:20211105235221p:plain
Optional Featuresはすべてチェックが入っているはずなのでそのままNextへ
f:id:h_267_sunny:20211105235423p:plain
続いて、Advance Optionsは解説すると以下のようなものです。
☐Install for all user
インストールされる場所はデフォルトは「C:\Users\ユーザ名\AppData\Local\Programs」です。
チェックを入れるとインストールされる場所が「C:\Program Files」となる
デフォルトの場所でいいので私はチェックしていません。
☑Associate file with python
.pyのファイルをPythonと関連付ける
☑Create shortcuts for installed applications
インタープリタ、ドキュメント、IDLEショートカットを作成する
☑Add Python to enviroment variables
pythonのインストールの場所をユーザー環境変数の設定
☐Add Precompile standard library
標準ライブラリをあらかじめコンパイルする
アクセスするときにコンパイルするのでそれほど変わりはないと考えチェックは入れません
☐Download debugging symbols
☐Download debug binaries(requires VS 2017 or later)
この2つはVisual Studioの混合モードデバッグのときに役に立つオプションのよう
私の使用用途ではまだ必要性を感じないのでチェックはしませんでした
必要なオプションを選択したら、Installボタンを押下
f:id:h_267_sunny:20211105235542p:plain
インストールを待ちます
f:id:h_267_sunny:20211105235635p:plain
無事セットアップできました
f:id:h_267_sunny:20211105235705p:plain




以上

人生で一番買ってよかったもの

先日、友人とタイトルのような話題になりました。

私は瞬時にコレだ!と思いつきました。

 

月経カップ

6年前から使用していて歴は長いです。

産後、迷わず2代目を購入したほど、私にとっては生活必需品となっています。

 

ネックなのは、値段が5千円くらいでまあまあするというところ

あとは、種類が多くてどれにすればいいか分からないというところ。

値段に関しては、ナプキンを今後買うはずだったお金で、月経カップを買うと考えると高い買い物ではないように思います。

種類についてはいろいろ調べて、私は1代目も2代目もスクーンカップを愛用しています。

月経カップを使うことで全くナプキンが必要なくなったという人もいるみたいですが、私はナプキン併用しています。ただ使う枚数は各段に減りました。

装着

装着のコツは結構しゃがむことじゃないかなって思います。

冗談じゃなく膝90度くらい。プルプルしながらです。

交換

商品説明には交換は12時間ごとでOKとありますが、私は朝と昼休憩と夕方帰宅後とお風呂のタイミングで付け直しています。

意外とすぐ一杯になります。経血の量のチェックができるのも月経カップのいいところです。

交換時に手が汚れるのは、これはもう防ぎようがないです。

手洗い場でコップに水を入れてから個室に入って、月経カップを取り出して軽く洗うって人が多いみたいですね。

洗浄・消毒

毎日のお風呂のタイミングで石鹸で丁寧に洗います。

消毒のタイミングは1回の月経が終わってから煮沸消毒します。

付属のきんちゃく袋にいれて保管し、来月に備えるという感じです。

ヒゲの役割

コップの下のヒゲみたいなのは取り出す時の目印になります。

(ヒゲ自体を引っ張るわけではないです!ご注意を!)

気になれば好きな長さに切れます。

1代目の時は、どれだけ切ってもなぜか痛くて根元まで全部切りました。

切ってしまって快適になりましたし、取り出しも問題なかったです。

2代目では、もう慣れたものなのでヒゲが残っていても不快感はなく、切らずに使用しています。

2つ使用した感想としては、ヒゲが残っているほうが若干ズレにくいように感じます。

唯一、1代目で失敗だったなあと思うのは”色”でした。

クラリティ(透明)だったんですが、素材がシリコンなのもあってどれだけ消毒しても色素沈着が目立ちました。

なので、2代目は赤色にしました。実物も写真の通り派手です。

まだ1年も使っていませんが今のところ綺麗に使えています。

最後に

月経カップを使うようになってから、生理が来るのがあまり嫌ではなくなりました。

一個人の感想でしかないので、すべての方に適合するものだとは思いませんが、もし購入を迷っている方のヒントになったらいいなと思います。

Python graphviz ダウンロード windows10

scikit-learnの決定木アルゴリズムで実際に決定木を描写する
pydotplusモジュールのgraph_from_dot_data関数を用いてグラフを表すオブジェクトを生成し、
そのwrite_pngメソッドにファイル名を指定して出力する

from pydotplus import graph_from_dot_data
…
# 決定木のプロットを出力
graph = graph_from_dot_data(dot_data)
graph.write_png('tree.png')

エラー内容

----> graph.write_png('tree.png')
…
GraphViz's executables not found
# GraphVizの実行可能ファイルが見つかりません


Graphvizの公式ホームページを開く
f:id:kinakobanana:20201022155727p:plain
f:id:kinakobanana:20201022155906p:plain
パッケージを選択したらダウンロードが始まると思ったのですが。。。


以下のようにディレクトリを選択をしていかないといけないみたいです
f:id:kinakobanana:20201022222100p:plain

「Index of /Packages/stable/windows/10/cmake/Releasex64/」のページの
graphviz-install-2.44.1-win64.exe」をクリックすると、exeファイルのダウンロードが始まる

ダウンロードが完了したら、exeファイルを開く
f:id:kinakobanana:20201022220914p:plain
f:id:kinakobanana:20201022221105p:plain
f:id:kinakobanana:20201022221309p:plain
f:id:kinakobanana:20201022221346p:plain
f:id:kinakobanana:20201022221429p:plain
f:id:kinakobanana:20201022221458p:plain

これでできるかなと思い、もう一度実行、、、
違うエラーが出ました

from pydotplus import graph_from_dot_data
…
# 決定木のプロットを出力
graph = graph_from_dot_data(dot_data)
graph.write_png('tree.png')

エラー内容

----> graph.write_png('tree.png')
…
Format: "png" not recognized. Use one of:
# 形式: "png"が認識されません。次のいずれかを使用します。

ちなみにUse one of:の後ろはブランクでした

解決しないまま

環境変数のPathを消してしまったときの対処法


気が付いた時には絶望でした。
もしかしたら直るんじゃないかと調べて、こちらを参考にしました。
windows — 削除したPath環境変数を復元する方法


上から4つ目の回答、2017/05/31 Joramie Mierさんのスレッドを参考にしました。

内容としては以下です。


1.スタートメニューからファイル名を指定して実行(または「Win」+「R」押します)
「regedit」と入力します。

2.HKEY_LOCAL_MACHINE > SYSTEM > ControlSet00X > Control を開く
f:id:kinakobanana:20211024003334p:plain
3.Session Manager > Environment に移動 > Pathをダブルクリック
f:id:kinakobanana:20211024003508p:plain
4.ここに前のパスがあるはずです。

以上です

Python Matplotlibの日本語表記

Jupyter Notebookを使っていきます

Windows PowerShellを開いて該当のフォルダに移動する

cd [フォルダ名]
C:\Users\(ユーザ名)> cd python
C:\Users\(ユーザ名)\python> # 移動できました

仮装環境を作る

python -m venv [仮想環境名]
C:\Users\(ユーザ名)\python> python -m venv pydataenv

仮想環境に入る

[仮想環境名]/scripts/activate
C:\Users\(ユーザ名)\python> pydataenv/scripts/activate
(pydataenv)C:\Users\(ユーザ名)\python> # 仮想環境に入りました

pipでjupyterをインストールします

(pydataenv)C:\Users\(ユーザ名)\python>pip install jupyter

Jupyter Notebookを開きます

(pydataenv)C:\Users\(ユーザ名)\python>jupyter notebook

自動的にWebブラウザ上にJupyter NotebookのHome画面が表示される
Python3の新規ファイルを開きます

Jupyter Notebookでグラフを表示できるようにします

%matplotlib inline

適当にグラフを作成します

import matplotlib.pyplot as plt
import matplotlib.style

# ggplotスタイルを指定
matplotlib.style.use('ggplot')

# データを用意
x = [1, 2, 3]
y = [2, 4, 9]

# 折れ線グラフを描画
plt.plot(x, y)
# グラフタイトルを設定
plt.title('testグラフ')

# グラフを表示
plt.show()
f:id:kinakobanana:20201004162230p:plain

f:id:kinakobanana:20201004162430p:plain
グラフタイトルの日本語の部分が文字化けしました。
この白い四角形を豆腐というらしいです!

エラー内容は「フォントファミリー['IPAexGothic']が見つかりません。 DejaVuSansにフォールバックします。」です。

フォントをダウンロードして設定する必要があるらしいです。
moji.or.jp

最新版のVer.004.01をダウンロードします
ゴシックだけでいいのでこれにします
f:id:kinakobanana:20201004214900p:plain

ダウンロードしたzipファイルを解凍すると以下3つのファイルができます

  • IPA_Font_License_Agreement_v1.0.txt
  • ipaexg.ttf
  • Readme_ipaexg00401.txt
真ん中の「ipaexg.ttf」をコピーしてmatplotlibのフォントフォルダ(以下に記載)にコピーする
なお、最初に書いていますが「C:\Users\ユーザ名\python」にpydataenvという仮想環境をつくってpipでmatplotlibをインストールしています

ここにペースト↓
C:\Users\ユーザ名\python\pydataenv\Lib\site-packages\matplotlib\mpl-data\fonts\ttf

Matplotlibrcの設定変更

C:\Users\ユーザ名\python\pydataenv\Lib\site-packages\matplotlib\mpl-data
f:id:kinakobanana:20201004222049p:plain
エディタのAtomで開きました※メモ帳でもいいです
249行目に「#font.family: sans-serif」とあります
f:id:kinakobanana:20201004222832p:plain
これを「font.family : IPAexGothic」に書き換えます
頭の#は消してください
上書き保存して閉じます

一度テストします

・・・

それでも豆腐になりました
Matplotlibのキャッシュが残っているかららしいです。
あと、フォントの一覧ファイルを再作成するため??

Jupyter Notebookを閉じて、PowerShellで以下を実行

  • Force :隠しファイルや読み取り専用ファイルなどを削除する
  • Recurse:指定したフォルダとそのサブフォルダに含まれるファイルとフォルダを削除する

具体的には「C:\Users\ユーザ名\.matplotlib」のフォルダにある「fontlist.json」ファイルを削除している

(pydataenv) PS C:\Users\ユーザ名\python>>Remove-Item ~/.matplotlib/ -Force -Recurse

f:id:kinakobanana:20201004232457p:plain

できました!!


こちらを参考にさせてもらいました
starpentagon.net

Python Numpy

参照とコピー

参照

a1という配列を作成したのち、a2 = a1 という操作をすると、
a1を参照するオブジェクトa2が作成される。
a2を変更するとa1も変更される。

import numpy as np
a1 = np.array([1, 2, 3])
# 参照
a2 = a1
a2[1] = 5
a2 
# output -> array([1, 5, 3])
a1
# output -> array([1, 5, 3])

コピー

データのコピーはa3 =a1.copy()
a3を変更してもa1には影響しない。

import numpy as np
a1 = np.array([1, 2, 3])
# コピー
a3 = a1.copy()
a3[0] = 8
a3
# output -> array([8, 2, 3])
a1
# output -> array([1, 2, 3])

参照・・・ravel

import numpy as np
b1 = np.array([[1, 2, 3], [4, 5, 6]])
b2 = b1.ravel()
b2
# output -> array([1, 2, 3, 4, 5, 6])
b2[0] = 9
b2
# output -> array([9, 2, 3, 4, 5, 6])
b1
# output -> array([[9, 2, 3], [4, 5, 6]])

コピー・・・flatten

import numpy as np
b1 = np.array([[1, 2, 3], [4, 5, 6]])
b3 = b1.flatten()
# output -> array([1, 2, 3, 4, 5, 6])
b3[5] = 0
b3
# output -> array([1, 2, 3, 4, 5, 0])
b1
# output -> array([[1, 2, 3], [4, 5, 6]])

Python標準のListとNumpy

Python標準のListでスライスするとコピー

list1 = [0, 1]
list2 = list1[:]
list2[0] = 5
list2
# output -> [5, 1]
list1
# output -> [0, 1]

Numpyの配列でスライスすると参照

import numpy as np
array1 = np.array([0, 1])
array2 = array1[:]
array2[0] = 5
array2
# output -> array([5, 1])
array1
# output -> array([5, 1])

Pyinstaller pythonモジュールをexeファイルに変換する

最近はあんまり使わないらしいです
重いし、遅いし、ってことなんだと思う

でもpythonをダウンロードしていないPCでpythonプログラムを実行するのに1番手っ取り早いから備忘録として残しておく

Windows PowerShellを開いて、exe化したいモジュールのあるフォルダに移動する

cd [フォルダ名]
C:\Users\(ユーザ名)> cd python
C:\Users\(ユーザ名)\python> # 移動できました

仮装環境を作る

python -m venv [仮想環境名]
C:\Users\(ユーザ名)\python> python -m venv pydataenv

仮想環境に入る

[仮想環境名]/scripts/activate
C:\Users\(ユーザ名)\python> pydataenv/scripts/activate
(pydataenv)C:\Users\(ユーザ名)\python> # 仮想環境に入りました

モジュールに使用したパッケージをインストールする

pip install [パッケージ名]


pyinstallerを実行

pyinstaller --onefile --noconsole [ファイル名]
  • onefile ・・・ 一つのファイルにまとめる
  • noconsole ・・・黒い画面を表示しない
(pydataenv)C:\Users\(ユーザ名)\python> pyinstaller --onefile --noconsole sample.py

もし.specを編集した場合、もう一度実行

pyinstaller [ファイル名].spec --onefile --noconsole

今度は.pyを実行するのではなくて、.specを実行する

(pydataenv)C:\Users\(ユーザ名)\python> pyinstaller sample.spec --onefile --noconsole

なぜ.specを編集するのか?
exeファイルが動かなかったり、軽量化のためにpandasのMKL・・・を除く。。などなど

こちらを参考にさせていただきました
qiita.com



3つのフォルダと1つのファイルが作成される

__pycache__
build
dist # <- ここにexeファイルがある
sample.spec

distの中にexeファイルが作成されている

これを渡してあげればpythonがない環境でも実行できる

ただ、エラーがでて強制終了すると黒い画面は残らず閉じてしまうので、
exeファイルで実行したときに出たエラーはエラーメッセージを確認できない

なのでエラー対処はexeファイルにする前にやっておくこと!


メモメモ

exe化して作成したファイルがWindowsディフェンダートロイの木馬系のウィルスが検知されてしまう場合がある

解決方法はいくつかあるみたいですが、私は以下で解決しました。
”PyInstallerのバージョンをダウングレードする”
2020/09/19現在、PyInstallerは4.0ですが、3.5を使うこと!
pypi.org

pipでバージョンを指定してインストールする

(pydataenv)C:\Users\(ユーザ名)\python> pip install pyinstaller == 3.5
ERROR: Invalid requirement: '=='

エラーになっちゃいました
==の前後のブランクはいらないみたいです

(pydataenv)C:\Users\(ユーザ名)\python> python -m pip install -U pyinstaller==3.5
Processing
…
Successfully installed altgraph-0.17 future-0.18.2 pefile-2019.4.18 pyinstaller-3.5 pywin32-ctypes-0.2.0

できました