2017年8月12日土曜日

Win10でPython

今まではPython使うときは、基本MacかLinuxでした。しかし、大抵の人はWindowsで動くプログラムを希望します。
仕方ないので、Windows10でのPython環境を構築することを考えて、anacondaで試してみました。特に地図表示が欲しいので、basemapパッケージをインストールしたいのですが、これまでwindowsだけは単にinstallコマンドだけではダメでした。しかし、最近やっと一発で行けるようになったようです。以下のコマンドでできました。

> conda install -c conda-forge basemap
> conda install -c conda-forge basemap-data-hires (地図データです)

参考にしたHPでは、basemapのバージョン指定をしていましたが、元のHPを見ると、バージョン番号は省いても最新のものを入れてくれるように今はなっていました。
ただ、このconda-forgeを使うと、conda自体を古いバージョンにしてしまうらしく、再度最新のものにしておかないと、今後の管理に支障をきたす恐れがあります。

> conda update conda

実際、自分が試した時もconda-forgeを使うと一つ古いバージョンに戻されていました。

さて実際に使ってみましたが(Python入門にあったロケットシミュレーションです)、なんかグラフの軸のラベルが文字化けして、□が出てくるだけです。(どうも日本語がダメです)おかしいと思い、半年くらい前に最初に試したMacで動かしてみると、packageのimportでエラーが出ます。どうもいくつか更新したものの相互依存関係が壊れているようなので、全部最新に更新します。それで動かしてみると、あれ?windowsと同じようにグラフの軸のラベルが文字化けしています。最初からこうだったけ?どうも何か問題が起きているようです。(どうも最新のmatplotlibのデフォルトフォントが日本語対応していないようです。plt.rcParams['font.family']='IPAexGothic'とフォントを指定していますが、システムにそれがない模様。)
ただ、windowsでもほぼ同様なpython環境が実現できているようです。

fontについてその後
少し調べてみましたが、以下のコマンドでシステムに登録されているTTFのフォントリストが得られます。
>> import matplotlib.font_manager
>> print([f.name for f in matplotlib.font_manager.fontManager.ttflist])

大量にフォントが出力されてきて、どれが日本語に対応しているのかわかりませんが以下で日本語が出力されました。
・win10
mpl.rcParams['font.family'] = 'HGMaruGothicMPRO'
・Mac
mpl.rcParams['font.family'] = 'AppleGothic'
(一部文字がまだ豆腐でした。Macは少し前にOSがSierraに変わったときにフォントが変わってしまったようです。)

conda-forgeとは
anacondaは元々、continuum社がパッケージをまとめたものですが、github社がその他のグループのリポジトリを集めて公開しているもののようです。そのため、より先進的なパッケージが集まっています。今回試したbasemap(windows版)が、anaconda.orgにはなくても、conda-forgeにはありました。

0 件のコメント:

コメントを投稿