Articles in the Python category

  1. macOSとHomebrewで作るpyenv+pipenvを使った複数pythonバージョンの仮想実行環境

    表題通りですが、割と悩んでしまったのでとりあえずメモです。

    なおまだしっくり来てるわけではないので、他にいい方法があれば教えてほしいです。

    homebrew-versionsがdeprecatedしてた

    すっかり忘れていたのですが、Homebrewにあるリポジトリ内の複数のバージョンを管理できる、homebrew-versionsがいつの間にか廃止(deprecated)されていました。1年前に終わってたようです。全く気がついてなかった。。

    Homebrew/homebrew-versions: Homebrew/versions (deprecated)

    💀 Homebrew/versions (deprecated)

    だそうです。骸骨。。

    表題のPythonですが、今まで3.4, 3.5, ...といったマイナーバージョンの管理はhomebrew-versionsを使っていたのですが、tapしたリポジトリは意味をなさなくなり、最近ではbrew upgradeするとhomebrew/coreのFomulaで定義されている最新版が入ってしまいます。

    このブログの記事を公開してる現在では3.7がリリースされたので有無言わずに3.7がインストールされます。

    homebrew-core/python.rb at master · Homebrew/homebrew-core

    (ちなみに2.7はpython@2でインストールできます。こちらも現在は2.7.15が入ります …

  2. pycgettbというpythonパッケージを作りました

    年末前に今年ちょっとした目標だったちょっとしたツールをPyPIに登録しました。PyPIデビューっていい響きですw

    pycgettb 0.1.2 : Python Package Index

    hrsano645/pycgettb

    このパッケージ、と言いますか同梱のコマンド(pysgettbcli)のほうが主役です。このコマンドの機能を一言で言うと帳票チックなExcelファイルからデータを吸い出してテキストデータにしてくれます。

    吸い出す元のExcelファイルと同じ形で抜き出したい場所に対して特別なフォーマットの文字列を埋め込み、その文字列と同じ名前を変数名としてjinja2テンプレートを作る事で、テキストファイルにしてくれます。

    言葉で説明するのがまだ腑に落ちないのもあって、具体的な使い方については英語のREADMEか日本語で書いたREADMEを見ていただければと思います。 ただ英語のREDAMEは翻訳サービスベースなのでちゃんとしたものになってないでとりあえず日本語のREADMEを見ていただければと。英語苦手なままです。。

    pycgettb/README.ja.rst at master · hrsano645/pycgettb

    なぜ作ったか?

    このパッケージには元となるその場しのぎレベルのスクリプトがありますが、本業でよく使うシチュエーションがあったので作りました。

    本業(家業)は自動車プレス金型設計事務所にいますが、プレス金型では圧力に関する計算を良くします。そのときに手計算は面倒なのもあってExcelで計算をして結果が見れるようにしています。

    その計算結果を今までは主に2次元の図面上に「手入力」してもらっていたのですが、流石に見るに堪えない思いもありどうにかしたいと考えていました。

    Excelで入力したセルのデータを吸い出してどうにかしようとした時の選択肢は、Excel VBAで計算した結果を別のファイルに出力したり、何かしらの方法で渡す手段を用意するのが普通ですかね? ファイル出力は実装したこともありますが、言わずもがな言語仕様も扱いづらい事もあって面倒です。

    他にはPythonなどの別の環境からExcelのファイルを読み込んでパーサー処理をするがあります …

  3. Python3.6のfリテラル文字列(f-string)が便利なのと怖い面について

    久々にpythonネタで、今年の2月に気がついてほったらかしにしてた話。

    fリテラル/フォーマット済み文字列リテラル/f-stringとは

    PEP-484で定義, 承認されてpython3.6に入った新しいリテラル表記です。簡単な例はこちら

    >>> name = "f-string"
    >>> f"{test} death!"
    'f-string death!’
    

    中身はstr.formatをそのまま使えるっぽいですが、変数名を直接かいて呼び出せるのが新しいです。

    使い方は公式ドキュメントを見たほうが早いです。

    2. 字句解析 — Python 3.6.3 ドキュメント

    辞書はどうする?

    良く辞書を展開する時があるのでfリテラルでも使えるのか試してみました。
    公式ドキュメントを見たところ、ダブルクオーテーションの中でシングルクォーテーションを使えば展開できます。

    >>> td1 = {"name":"suzuki", "age":"32"}
    
    >>> f"{td1['name']}. age:{td1['age']}"
    'suzuki. age:32’
    

    が、いちいちクオーテーションを二種類使うとかっこ悪いですね。。。辞書の場合はstr.formatを使ったほうが楽かも。引数の展開が使えるので …

  4. PyCon JP 2017に参加してきました #pyconjp

    着ました! #pyconjp

    hrs_sano645さん(@hrs_sano645)がシェアした投稿 -

    昨日まで(9/8~9/9)に開催されましたPyCon JP 2017に参加してきました。初参加から4回目ぐらいの参加になります。去年と二年連続となりました。

    今年のテーマはOutput & Followということです。コミュニティへ向けてお披露目して、見聞きしたら色々と語ろうとざっくりとした意味合いで捉えています。

    今年のテーマ | PyCon JP 2017 in TOKYO

    会場の雰囲気

    前回と同じく、早稲田大学西早稲田キャンパスにて開催されました。

    私事ですが、一応大学関係者なので、最近流行りの eduroam を利用することが出来ました。去年はまだ利用できなかったのですが、今年から可能になったので使ってみてました。

    AndroidとMacとそれぞれ利用することが可能で、おおよそ上下20Mbpsほど出ていたようです。なのでネット環境に困ることはほぼ無く快適に過ごすことが出来ました。所属している東海大学(とある研究室の先生が猛プッシュされてたそうです)や早稲田大学やeduroam関係の皆様ありがとうございます。

    (なんでここまで書きたくなるかというと、こういったカンファレンスは大抵通信環境が厳しくなることがあるためです。で …

  5. Shizuoka.py #6に参加しました

    Shizuoka.py #6 and shizudev - connpass

    2月の半ばに開催されました Shizuoka.py #6に参加しました。今回は縁あってきゅうり農家の(@ike_jpnさんの方に声をおかけしまして参加していただくこととなりました。

    また他県(なんと横浜!)からいらした方や、学生さんもいまして、今回のShizuoka.pyも大変盛り上がりました。皆様ありがとうございました。これも@yajuさん、@fmkz___さんのおかげです。@yajuさんはqiitaの投稿でshizuoka.pyの宣伝をしていただきました。

    なぜ機械学習にPythonが選ばれるのか - Qiita

    自分は最後に汚し的なLTでした(5分のつもりが色々あって15分ぐらいorz。ぶっつけですみません)スライドはこちらです。

    requests-oauthlibについてはこちらです。実際に数時間ですぐに使えるようになったのでおすすめですね。

    Requests-OAuthlib: OAuth for Humans — Requests-OAuthlib 0 …

  6. PyCon JP 2016に参加してまいりました #pyconjp

    行ってまいりました。今年のPyCon JP。備忘録がてら感想を書こうと思います。YoutubeとTogatterのリンクも載せておきます。

    ちなみにTogetherさんのまとめが資料やYoutubeやツイートの様子もほとんど見ることができます。すごいです。中の人何人いたんだろう?

    資料も反響もすべてチェック! 秋雨に濡れた早稲田大学西早稲田キャンパス #PyConJP 2016 まとめまとめ - Togetterまとめ

    道中

    ポケモンGOの話題は以上です。

    キーノート一日目

    ジェシカさん(Jessica McKellar)の公演は、Pythonのコミュニティから社会のコミュニティまでに興味を持って取り組む活動の様子の紹介でした。 PyConの1日目のキーノートはPythonのコアな話をする場合もあれば、Pythonが絡むいろんな活動の様子を紹介することもありますね。今回は後者側だったようです。

    ジェシカさん自身も小さい頃からプログラミングを学んでいたわけではなく大学生時代からだそうです。学ぶといろんなシステムが理解できるようになるとおっしゃってた(間違ってたらすみません。。)のが印象的でした。

    聞きながら周りと見ると

  7. Python Boot Camp for ishiilabを開催しました

    8/5の午後に、お手伝いしている大学の研究室内でここ数年行っているPython布教活動として、新参加ゼミ生向けのPython Boot Campを開催してみました。

    昨年までは、自分で用意したテキストを使って各自でテキストをこなすスタイルでやっていました。その時までの資料はこちら。

    GitHub - hrsano645/ishiilab_python_tutorial: 東海大学石井研究室の研究室内Pythonチュートリアルの資料です

    今年は、一般社団法人PyCon JPが各地で開催されている Python Boot Camp のテキストを利用させていただきました。CC-BY 4.0なので条件を守れるなら自由に利用できるようです。

    初心者向けPythonチュートリアルを日本各地で開催 — PyCon JP

    Python Boot Camp Text — Python Boot Camp Text 2016.04.28 ドキュメント

    自分が一応のレベルで用意したスライドはこちらです。補足説明ぐらい?しか書いておりません。

    参加された方は9人とほぼすべてのゼミ生が参加でした。昼過ぎから5時間ほどで休憩は自由。基本的にテキストをみんなでこなして、質問や困ったときはその都度受け付ける方法を取りました。

    結構みなさん進捗が良くて、一部はスクレイピングのテキストまでこなされていたようですがファイルの操作あたりで時間切れな方が多数でした。アドバイスする側としては、どの部分で躓いたかやトラブルがあったかが興味深く勉強になりました。思い出しながら様子を箇条書きで残しておきます …

  8. virtualenv(1.11.6) + windows 7で複数のPythonバージョン(64bit, 32bit含む)を使おうとすると失敗する件

    仕事で久々にWindowsのPythonを使おうと、pipのアップグレードやら入れてあるモジュールをアップグレードしてまして、

    virtualenvも1.11.6となってましたが、それを利用してpython2.7.8とpython3.4.2の仮想環境をつくろうとしたらエラーが出て戸惑った話です。

    要約

    • Virtualenv 1.11.6にて、64bitOSに32bitのPythonを複数バージョンごとに入れて、virtualenvをインストールしたバージョン以外のpython環境を指定して仮想環境をつくろうとするとエラーが起こる
    • virtualenv側でPythonのインストールされているリストを調べに行くコードに不具合がある
    • 修正はされているが、develop branchにあるので、githubのdevelop branchのモノをインストールすると動く
      • コード側のバージョンは1.12devとなってるので、1.12がリリースされたら改善しているはずです。
      • インストール方法は公式のドキュメントを見ればわかります。

    本題

    PS C:\Users\hiroshi> virtualenv --python="C:\python34\python.exe" testpy2
    Traceback (most recent call last):
      File "C:\Python27\lib\runpy …
  9. pythonで設定ファイルを使うときに何を使えばいいのか。をメモっただけの記事

    雑談

    お久しぶりです。9月から諸事情で活動全般が停滞してまして、ブログもさっぱり放置していました。

    Twitterなどなどは精力的に更新していましたが、ブログを書くとなるとちょっと体力いるなあと感じてしまってます。

    ブログのネタはたくさんありまして、Evernoteにはたくさんのドラフトな記事がありますので、少しずつですがアップしていこうと思います。

    本題

    ちょっと前にPythonで設定ファイルを扱いたいときに、どういった形式をどういったモジュールで扱えるのかを箇条書きしたりしたメモです。

    Python界隈では様々なモジュールがありますので、これのまとめが一概に言えるものではないのですが、あまりまとまった記事がなかったような気がするので上げてみようと思います。

    (Python公式でまとめられていた、ConfigParserShootoutの劣化版な感じでもあります。jsonとかyamlはないしまあいいかなと)
    https://wiki.python.org/moin/ConfigParserShootout

    なんで調べたの?

    GUIの設定ファイルを書くとき、ファイルをコンバートするような処理の時に、プロファイル定義を複数用意したかった時に悩んだので。

    何が問題になるか

    • 書きやすいか
    • 複数の値を持てるか
    • 複雑な構造(入れ子構造や行列とか)は作りやすいか
      • プロファイル的なものを管理するときに、1ファイルオンリーでやる場合は必要
      • 複数ファイル(conf.d的なディレクトリ)を使うならその限りではないと思う

    設定ファイルにはどんなものがあるか?

    ini

    • Winでよく見たりするけどLinuxのconfファイル系でも結構見る
    • セクションでカテゴリーにして、オプション名とバリューで設定を定義
      • 基本的に、[セクション] -> オプション = バリュー
    • よく使われるけど …
  10. PyConJP 2014で見たかったセッション

    書き忘れたので新しい記事に分けた(汗)

    備忘録なので箇条書きです。

    Pelicanのライブ映像は実は見たのですが、Wordpressから自前でこういうものを作るつもりでしたが、Pelicanいいですね。事務所のサイトもこれでリニューアルしたいな。

About Me

実家の自動車プレス金型設計業(sano-design.info)に所属。
また東海大学石井研究室(ishiilab.net)でたまにお手伝いしてます。
サイト制作/python/Ubuntu 作ったり扱います。 小さいガジェットがとっても好き。
最近は諸事情で家事業が多めです。

スポンサードリンク