HYT MachineWorks

やったこととか思いついたことをメモしておくブログです。

簡単にPyGraphvizとNetworkxで自由なフォントを使ってグラフを作画する(Python3 Windows10 64bit)

 Graphvizフォント自由にならない問題とは

 以前、PyGrapvizで豆腐を回避する記事を書きました。

hytmachineworks.hatenablog.com

 ですが、完全では無くどうしても出来ない組み合わせが存在しましたが完全に網羅させる方法がわかったのでメモします。その完成形が下の自分のPCにインストールされたすべてのフォント名をそのフォント指定で書いたネットワークです。

f:id:hytmachineworks:20190217184125p:plain

高解像度版はこちら

続きを読む

もっと簡単に、pygraphvizをWindows10 64bitでインストールする(Python3)

以前の記事で紹介したpygraphvizのWindowsへのインストール方法

hytmachineworks.hatenablog.com

上の記事で、pygraphvizのインストール方法を解説していましたが、

  1. とりあえずGraphviz本体を入れる。
  2. GitHubにいい人が64bitにビルドしてくれたのがあるのでそれを1で入れたGraphvizと違うフォルダにコピー
  3. さらにいい人が、pygraphviz1.3.1の修正部分をまとめてくれているので修正したpygraphvizを作成する。
  4. 作成したpygraphvizのフォルダでsetup.pyを実行
  5. Pathを通す

と、5ステップ必要でしたが、

  1. とりあえずGraphviz本体を入れる。
  2. GitHubにいい人が64bitにビルドしてくれたのがあるのでそれを1で入れたGraphvizと違うフォルダにコピー
  3. condaでpygraphvizをインストール
  4. Pathを通す

 といった感じで、ステップ数は、一つしか減ってませんが、以前必要だったC++コンパイラや、ソースの編集等がいらないので大分お手軽な方法をメモします。

続きを読む

もっと簡単にpycairoをwindows10 64bitにインストールする(python3)

以前、紹介したpycairoのWindowsへのインストール方法

 

hytmachineworks.hatenablog.com

上の記事で、pycairoのインストール方法を解説していましたが、

  1. msys2をインストールする
  2. cairoをインストールする
  3. pycairoをインストールする

って3ステップ必要でしたがワンステップで出来る方法がわかったのでメモ

続きを読む

Windowsで Headless Chrome + Selenium + Python3 でスクレイピングをする初めの一歩

Headless ChromeSeleniumとは

元々、Seleniumは、Webブラウザの自動動作を可能にするソフトウエアです。Webサイト等を開発している人がJavaScriptによる動的な書き換え等がうまく動作するかのテストをするためのツールとして作られていました。

一方、Headless Chromeは、Chromeのheadlessつまり画面表示を削除した物です。Chromeにheadlessのオプションをつける事で動作します。何が嬉しいかというと画面表示を行わなことによる速度の向上です。同時にいくつもChromeを動作して動かす場合に大きな違いを感じることが出来ます。画面表示が無いからと言っても、スクリーンショットは取れるので不具合を起こしたときには画面を保存することが出来ます。

今回は、WindowsLinuxでオプションが違うようなのでそのへんの説明と注意点をメモする。

続きを読む

urllib3を使ってWikipediaから国名一覧を取得してJSONで保存する Python3 windows10 64bit

Web スクレイピングの例としてWikipediaから情報収集をする

ここでは、英語版wikipedia国の一覧海外領土・自治領の一覧からhtmlを取得して国名の一覧を取得することを目的にする。

それと、これは自然言語処理100本ノックの81問で使用する国名リストの取得方法の解説記事でもある。

続きを読む

2019年時点の俺流Windows10 64bitでのPython3環境構築と、condaでYAMLから環境復元が出来ない件について

Windows10におけるPython環境構築とは

本当に、一つの事しかしないのであればPythonの公式のバイナリをダウンロードして、パッケージのインストールにpipを使ってPyPIに集約された、いろいろな人が開発されたパッケージを使って構築してもいいと思います。ですが、Windowsの環境ではpipでは、絶妙に使いたいのにインストール出来ない場合も少なくないと思います。

また、使用されている方の多いAnacondaを使用するのも一つの手ではあると思いますがこれはこれで全部のせで、バージョンアップに時間がかかったり、複数の開発や分析をしている時に一つの開発のために同じパッケージのバージョンを上げると他の開発に思ってもないエラーが出たりして慌てることがあります。

そこで、使うのがAnacondaに内蔵されているパッケージ、仮想環境管理システムcondaです。これだけで、パッケージのインストール等の管理、仮想環境の管理が両方できます。

今回取り上げるのは、condaとpythonの最低限の状態で配布されているAnacondaの最小版Minicondaを使った環境構築について今回はメモしたいと思います。

あと、Windows上でcondaを使ってymlファイルでの環境の構築にバグがあってその対策方についても同時にメモします。

[2019/02/01 condaの仕様変更による大幅編集]

続きを読む

condaがうまく動かない Windows10 64bit Python3

condaがうまく動かないというか、condaからネットワークにつながらない。

久々に開発環境を構築をしようとしてMinicondaを入れて元々作ってあった環境のYAMLファイルで復元しようとした時に、ためにしcondaをアップデートらこんなエラーがでた。

PS C:\Users\username> conda update conda
Solving environment: failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/free/noarch/repodata.json.bz2>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/free/noarch/repodata.json.bz2 (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))

 もう、本当にだめで、ネットから新しいファイルをダウンロードするのがすべて駄目な感じ。ちなみに、pipも同じくだめ。

困ったけど対応策を見つけたのでメモする

続きを読む

2018買って良かったものベスト5

もう、2018年も終わりなので今年買ってよかったものをメモしておく

 

 

5位 井村屋 58gミニようかん 小倉

www.imuraya.co.jp

仕事をしてて小腹が空いたときに食べてる。小さいのにカロリーが高くて、糖分が頭に効くのでいい感じ。簡単に手でむけて食べやすいのもいい。箱買いしてストックしてる。

  

4位 アンダーアーマーのパンツ

www.underarmour.co.jp

夏場、冬場問わず仕事で動き回ることが多いですが、汗をかきがちな場面でもすぐ乾いていい感じ。若干フィット感があってシャキッとした気分になれるから気に入ってます。

 

3位 マジックマウンテン コンプレスドライパック

マジックマウンテン公式サイト

http://www.magic-mountain.jp/item/category/57_pdf/57_p40_magicmountain.pdf

山用品から、一つ。中に入れたものが濡れないようにするドライパックですが。当然濡れないので中の空気も抜けなくてカバンのなかで大きな顔をすることが多いですがこれは、弁がついていて中の空気を押すと抜けるようになっています。あっという間に抜けて小さくなるので非常に便利です。難点は、夏頃に一回しか発売しないのか、冬になるとプレミア価格販売になるってこと。欲しいひとは、定価より高かったら来年まで待ったほうがいいかもしれません。

 

2位 シャボン玉石鹸 酸素系漂白剤

www.shabon.com

 

いままで、洗濯機の掃除とか専用品を買っていたんだけど、これを使ったらエグい取れ方をする。まじで引く。YouTubeとかでも、「酸素系漂白剤 洗濯機」  とかで検索するとやばい動画がたくさん見れます。洗濯機を洗うとゴミが出てきますがみんな金魚をすくう網をかってますがあればあまり大きいと使いづらいです。普通金魚をすくうくらいのサイズがベストだと思います。

あとは、お風呂周りとかいろいろ掃除するのに活躍してくれました。

 

1位 SIS株式会社 卓上インパルスシーラー FR-300A

 

商品一覧美容家電 - SIS株式会社

本来は、袋とかのビニールを熱を使ってシールできるもので。お菓子とか小分けにしたりできるものです。はじめは、テレビでよく取り上げられてた100均のシーラーをつかったんだけどすぐ壊れてネットで評判がいいこれをかった。

簡単に押すだけでシールができていい感じ。いろいろ便利なものが作れたので後で紹介したい。

 

それでは、みなさん良いお年を

作業着用のベルトを切るとボロボロになるのを防ぐ裏技

作業着用のベルトを切るとボロボロとは

作業着用に、ホームセンターとかワークマンとかでこんなベルトが売ってると思います。

f:id:hytmachineworks:20181201184507j:plain

なんの変哲もないベルトですが、はじめはすごい長さで売られていて自分で切って調整するのですがそのまま使うと切ったところからほつれて来てボロボロになってしまいます。

その防ぐ方法をメモします。

続きを読む

自然言語処理100本ノックをWindows/Python3で 第8章: 機械学習を解く

自然言語処理100本ノックとは、

東北大学の乾・岡崎研究室にて公開されている自然言語処理の問題集です。

www.cl.ecei.tohoku.ac.jp

前回に引き続いて第八章をこなしました。

続きを読む

pandasでShift JIS(cp932)で書き出す時のUnicodeErrorと戦う(Pyhton3 windows10)

pandasでShift JISで書き出す際に出るUnicode Errorとは?

以下のようなコードでpandasでshift JIS(cp932)でcsvを書き出そうとすると

import pandas as pd

#
エラーが出るデータを作成
unicode_data = [["全角\u0020スペース\n", "\xA0ノンブレークスペース"]
for _ in range(100)]

# dataframeに変換
df = pd.DataFrame(unicode_data)

# pandasshift-jisとして書き込む
df.to_csv("./test_sjis.csv", encoding="cp932")

以下のようにエラーが出ることがある。

Traceback (most recent call last):
File "C:/Users/hyt/python/problem_no_80.py", line 9, in <module>
df.to_csv("./test_sjis.csv", encoding="cp932")
UnicodeEncodeError: 'cp932' codec can't encode character '\xa0' in position 16: illegal multibyte sequence

ってな感じでエラーを吐く。これは、cp932つまりは、shift-jisで、割り当てられてない文字を書き出そうとしたときに発生するエラー。起きがちなのは上で例に上げている"\xa0"や"\3000"などでよくエラーを出す。でその対策の話。

続きを読む

気になる安全ひげ剃りシック インジェクターを使ってみた

シック インジェクターとは?

みなさん、安全ひげ剃り売り場でこんなひげ剃りが売られているのを見かけたことは無いだろうか?

f:id:hytmachineworks:20181008011548j:plain

正直、これを買ってもひげをそれそうではない。裏を見てみるとホルダーは製造終了しているので使えませんと書いている。ますますそそられてきた。

ひげ剃りは身だしなみに不可欠。男の仕事道具は、追求せねばってことで気になって調べて使ってみた。

続きを読む

Python3 / Windowsで文字コード判定してテキスト読み込みする

文字コード判定とは、

テキストを人が読めるように文字列に変換するのですが、その変換規則のことです。最近は、Unicodeといって、Python3のコード様にUTF-8で書かれていることも増えましたが、Windows上では未だに、ShiftJIS(cp932)やEUC-JPなどの日本語の文字コードや、英語でもWindows1252などいろいろな文字コードが存在します。

文字コードを間違えて読み込もうとすると

UnicodeDecodeError: 'cp932' codec can't decode byte 0x97 in position 6199: illegal multibyte sequence

 という感じで、変換できないバイト列があるぞと怒られます。

その対策として、一回前に、文字コード判定をさせてファイルを読み込もうということをしたメモです。

続きを読む

自然言語処理100本ノックをWindows/Python3で 第7章: データベースを解く

自然言語処理100本ノックとは、

東北大学の乾・岡崎研究室にて公開されている自然言語処理の問題集です。

www.cl.ecei.tohoku.ac.jp

前回に引き続いて第七章をこなしました。

続きを読む

Flaskで、Pythonを使ってwebアプリを作る Windows10 64bit (自然言語処理100本ノック7章 69番を解く)

Flaskとは?

http://flask.pocoo.org/

Pythonをベースに作られた軽量webフレームワークです。一から頑張らなくても比較的カンタンにwebアプリが作れます。

これを使って簡単なwebアプリを作って見たのでメモ。正確には、自然言語処理100本ノックの7章 69番のメモです。データも問題で指定されているartist.json.gzを使っているので必要に応じてダウンロードすること、

続きを読む