原点回帰。このブログは、自分へのメモのために始めたんでした。
matplotlibやseabornでグラフを描いていると、日本語が□□□などになって、残念な事が良くあります。そんなときに便利なコードを貼っておきます。
Linuxなどで、どんなフォントがあるかわからないときは、 font_manager.findSystemFonts() で、一覧を取得できます。日本語フォントっぽいのを見つけて、pathに指定すればOK。 スポンサーサイト
|
PythonからOracleに接続するために使われるライブラリはいくつかあるのかも知れませんが、cx_Oracleがデファクトスタンダードのようです。
Windowsだしバイナリ版もあるから、一瞬で設定できると思ったんですが、久しぶりにハマったのでメモっておきます。 まず、すこし調べて見ると、インストールの前に、Oracleが配布しているInstant Clientの設定が必要です。 なんかいろいろあるんですが、Basic、SQL*Plus、SDK、ODBCあたりを入れておけば十分かと思われます。入れすぎかも知れませんが、まあココはあまり問題ではありません。 ダウンロードしたzipファイルを解凍して、適当なディレクトリに放り込み、このディレクトリをWindowsの環境変数、ORACLE_HOMEに設定して、おなじくPATHにも追加します。PATHにだけ追加すればいいような気もしますが、これも特に問題ではありません。 設定出来たら、cx_Oracle-5.2.1-12c.win-amd64-py3.5.exeなど、Pythonのバージョンなど環境に合ったものを持ってきて、インストーラを普通に実行。Windows、バイナリあると楽だなと思ったんですが、これだとちゃんと入らない。 >>> import cx_Oracle Traceback (most recent call last): File " ImportError: DLL load failed: The specified module could not be found. と、なんとも愛想のない返答。環境変数の設定などを確認するも、原因不明なので、何でコケているのか調べることに。 ライブラリの依存関係を調べてくれる、Dependency Walkerなるものがあるようで、さそっく使って見ます。 本体は、site-packagesの中のcx_Oracle.cp35-win_amd64.pydなので、これをDependency Walkerで調べると、Oracleのoci.dllは読み込んでいるものの、oci.dllが依存するMSVCR100.DLLが無い! なんて中途半端なんだ・・・と思いながら、調べるとよくあることらしい。MSのサイトから、持ってきて、設定後、cx_Oracleを再度インストールしたら、動くようになりました。 ちなみに、Macの場合、バイナリはありませんが、開発環境を整えれば、ここにあるように、すぐに入ります。 Windowsも中身UNIXにしちゃえばいいのに、と思った土曜の夕方でした。 |
最近、Udemyで「実践Pythonデータサイエンス」というコースを公開しました。
もとは、英語版だったものを翻訳したのですが、Pythonを使ったデータ解析の方法を、網羅的に学べます。全部で17時間 のコースなので、結構見るだけでも大変ですが、このスキルを習得できれば、さまざまなシーンで応用可能だと思います。 そんなUdemyですが、2016年の4月4日から、価格が改定されるらしいです。いくらになるかまだ決まっていないようですが、だいぶ安くはなるようなので、ここでは先行して、先着100名様に45ドルキャンペーンをやります。今のレートでだいたい5,000円くらい。2016年3月31日まで有効なクーポンで、以下のリンクから購入することで割引になります。 https://www.udemy.com/python-jp/?couponCode=201603D45 もし、Pythonとデータ解析に興味がありましたら、是非、お試しください。 |
1日に3エントリーも書いて、ただのブロガーみたいになってますが、ipyparallelが素敵すぎるので、メモ。
ipyparallelのページはこちら。その名の通り、並列処理を簡単にやってくれるライブラリです。 ドキュメントにある通り、インストールは至って簡単。 pip install ipyparallel その後、.jupyter/jupyter_notebook_config.pyに以下を追加。 c.NotebookApp.server_extensions.append('ipyparallel.nbextension') そうすると、notobookを起動した時に、IPython Clustersのところが使えるようになっています。 ![]()
すこし、使ってまた書きます。 |
Anaconda便利だと宣伝しまくって、自分でも便利に使っているんですが、便利すぎると困ることも。
久しぶりにログインしたGUIを全くもたないCentOSマシンで、conda update conda; conda update anacondaとバカの一つ覚えみたいに、なにも考えず実行したら、notebookをリモートからhttp://[マシン名]:8888みたいにアクセスするのが出来なくなってしまいました。 なんか、設定ファイルが変わって、jupyter notebookとして起動するのが正しい模様です。 JupyterのDocument $ jupyter notebook --generate-config で、~/.jupyter/jupyter_notebook_config.pyが出来るので、いつものように、以下の3点くらいを設定すればOKですかね。 c.NotebookApp.ip = '*' #どこからでもアクセス可能に c.NotebookApp.open_browser = False #結構重要。テキストベースのブラウザが立ち上がって操作不能になる。 c.NotebookApp.password = u'sha1:*****' #ドキュメントを参照してパスワード文字列作ってください。 準備ができたら、 $ jupyter notebook で起動します。ログアウトボタンが増えた気がする。 |