タグ

pythonに関するmatsukazのブックマーク (22)

  • 2020 年の Python パッケージ管理ベストプラクティス - Qiita

    この記事は Python Advent Calendar 2019 の 19 日目の記事です。 🐍 あらすじ Python のパッケージ管理。特にここ数年で新しいツールが多く出たこともあり、一体何を使うべきなのか、少し調べただけでは分からないと思います。記事では、新しめの管理ツールを独断と偏見で比較します。著者は Poetry 信者なのでバイアスが掛かっているので悪しからず。 記事で書いていること Pipenv、Poetry、Pyflow の違いと使い方 記事で書いていないこと Pyenv、Venv、Virtualenv などの既存ツールの説明 著者の環境は以下の通り。 Ubuntu 18.04 Python 3.8.0 Pipenv 2018.11.26 Poetry 1.0.0 Pyflow 0.2.1 特に Poetry と Pyflow は開発途中なので、記事の内容と違う

    2020 年の Python パッケージ管理ベストプラクティス - Qiita
  • Pythonistaなら知っておきたい計算量のはなし - Qiita

    最近久しぶりにアルゴリズムイントロダクションを読んでいるのですが、ふと「Python(CPython)のデータ構造に関する各操作の計算量ってどれくらいなのかな?」と気になったので調べてみました。以下のページを参考にしています: Python Time Complexity 以下では $n$ や $k$ といった記号を使います。ここで $n$ はコンテナ内の要素数、$k$ はパラメータ内の要素数かパラメータの値とします。では見ていきましょう。 2021/05/02 コメントでのご指摘を記事に反映しました。ありがとうございます。 リスト まずはリストです。Pythonではリストは内部的にはC言語の配列として表しているようです。そのため、先頭要素の追加や削除を行うとそれ以降の要素をすべて移動する必要があるため大きなコストがかかります。なので先頭に要素を追加したり削除する必要がある場合は、代わりに

    Pythonistaなら知っておきたい計算量のはなし - Qiita
  • この処理Pythonでどう書く? - エムスリーテックブログ

    EF15形は高性能な電気機関車であったが、引き出し性能が蒸気機関車に劣ると誤解されていた。 誤った運転方法により来の性能を引き出せていなかったのである。 (spaceaero2 [CC BY 3.0], ウィキメディア・コモンズより) こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小です。 WEBサイトは RailsやSpringなどの「体部分」だけでは完結しません。レポート作成・データ更新などの細かい処理も必要です。 過去にはこうした用途にはBashがよく使われました。しかし、Bashは落とし穴が多かったり、クラスなどの抽象化機能がなかったりして、規模が大きくなると辛くなります。 そこで、Bashの代替候補に挙がるのがPythonです。エムスリーでもかつてはBashを使っていましたが、現在は新規案件にはPythonを推奨しています。 しかし、実際にPythonで書き直そ

    この処理Pythonでどう書く? - エムスリーテックブログ
  • Fabric2 へ移行した際の雑Tips - kumak1’s blog

    更新履歴 2018/08/20 コマンドのエラーを無視して後続処理する方法を追記 2018/10/24 接続先でシェルを使いたい場合のオプションを追記 はじめに Python 製タスクランナーの Fabric 2 が公開され、Mac の brew でもこのバージョンになりました。 Fabric 1 の記法では動かなくて私は阿鼻叫喚したのですが、みなさんはいかがでしょうか? まだまだ日語ドキュメントも少ない(ほぼない?)し、移行事例があまりなかったので、雑なものですがメモを残しておきます。 なお、ここでは英語ドキュメントで大々的に示してるメイン機能(Connection や Group など)の使い方を説明するものではなく 「あれ、v1 でやってたこの処理、どうやってやるんだろ?」という細かなものを中心をしています。 Fabric 1 と 2 って、ゆうてそんなに変わらんのやろ? めっちゃ

    Fabric2 へ移行した際の雑Tips - kumak1’s blog
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine

    Googleは3月3日、「Python Fire」を発表した。Pythonコードからコマンドラインインターフェイス(CLI)を自動生成するもので、Pythonコードの開発やデバッグに有用だという。 Python Fireは、クラスやディクショナリ、モジュールといった任意のPythonオブジェクトからコマンドラインインターフェイス(CLI)を自動生成するライブラリ。Google内部でも利用しており、Python Fireを使ってPython Imaging Library(PLI)のイメージマニピュレーションツールを構築したという。また、Python Fireで実験管理ツールを構築し、PythonとBashと同等に実験を管理しているとのこと。 CLIインスペクションを使っており、PythonプログラムでFireの関数を呼び出すとプログラムに対応するCLIを自動生成する。引数の設定などの作業は

    Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
  • Pythonをやるときに参考になりそうな情報 - のんびりSEの議事録

    最近あんまり触っていなかったので、久々にPythonをやろうと思ったときにいろいろ忘れてたり、新しく知ったりしたこともあったので、Pythonやるときに参考になりそうな情報をまとめました (但し、今回はデータ分析系のライブラリ関連は除いています) Pythonの言語仕様や基等 概要 — Python 3.5.2 ドキュメントdocs.python.jp qiita.com www.python-izm.com 2系と3系の違い postd.cc qiita.com コーディング規約 はじめに — pep8-ja 1.0 ドキュメント ドキュメント生成 azunobu.hatenablog.com ドックストリング """ 3重ダブルクォートを使用して記載する。 ドックストリングに記述したテキストは関数やクラスオブジェクトの__doc__に保存される def hello(): """Out

    Pythonをやるときに参考になりそうな情報 - のんびりSEの議事録
  • Pythonの内部構造::PyObject ― CPythonの実装から内部に迫る | POSTD

    こんにちは、皆さん。 Python言語の実装に深く踏み込む前に、Pythonの主要な概念を知っておく必要があります。それは非常にシンプルで、 全てがオブジェクトだ ということです。このことは、Pythonの内部構造を学習する際の最初のステップであり、この旅の入り口でもあります。 今回の主なテーマは、Pythonのオブジェクトが実装レベルでどのように扱われているかを理解することです。私たちは、 Python 2.7.8 のCPythonの実装について話をしていきます。 Pythonのソースをダウンロードし、解凍することを想定しているので、ソースコードへの参照は全て、ルートフォルダからの相対的な参照になります。 PyObjectとPyVarObject Pythonでは全てがオブジェクトです。Pythonで使われている以下のものは文字通り、全て C の PyObject です。 関数 スライス

    Pythonの内部構造::PyObject ― CPythonの実装から内部に迫る | POSTD
  • 「スマートPythonプログラミング」という本を書きました - CUBE SUGAR CONTAINER

    表題の通り Pythonを書いたので、そのご紹介です! スマートPythonプログラミング: Pythonのより良い書き方を学ぶ 作者: もみじあめ発売日: 2016/03/12メディア: Kindle版この商品を含むブログ (1件) を見る どんななの? ひと言で表すと、自信を持って Python を書けるようになるためのです。 スマートPythonプログラミングなので、略してスマパイって呼んでください。 こんな人におすすめ なんとなく書いてなんとなく動いているコードに不安を覚えている方 入門書は読み終わったけど次に何をして良いか分からない方 Python の初心者から中級者にステップアップしたい方 ベストプラクティスとかアンチパターンって言葉が好きな方 上記に当てはまる方には、書が少しでも参考になると思います。 どんなことが書いてあるの? 自分が Python を学び始めた

    「スマートPythonプログラミング」という本を書きました - CUBE SUGAR CONTAINER
  • 言語処理100本ノック with Python(第1章) - Qiita

    はじめに 自然言語処理と Python のトレーニングのため,東北大学の乾・岡崎研究室 Web ページにて公開されている言語処理100ノックに挑戦していきます.その中で実装したコードや,抑えておくべきテクニック等々をメモしていく予定です.コードについてはGitHubでも公開しています. 教科書は『Python入門 2&3対応(細田謙二ら著,秀和システム)』を使用しています. スタートアップに際して参考にさせていただいた記事をご紹介いたします.参考にしすぎてる感も否めないので,不快に感じられたらご連絡ください. http://qiita.com/tanaka0325/items/08831b96b684d7ecb2f7 ズブの素人なので記法が統一されてなかったり,Python 2/3 関係が混在していたりと大変お見苦しいのですが,ご指摘いただければ幸いです.実行環境自体は Python 2

    言語処理100本ノック with Python(第1章) - Qiita
  • Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER

    この記事の目指すところ 現在 Python はバージョン 2.x 系と 3.x 系という、一部に互換性のないふたつのメジャーバージョンが併用されている。 その上で、この記事にはふたつの目的がある。 ひとつ目は、2.x 系と 3.x 系の違いについてまとめること。 現状、それぞれのバージョン毎の違いはまとまっているところが少ない。 自分用に、このページだけ見ればひと通り分かる!っていうものがほしかった。 ふたつ目は、2.x 系と 3.x 系の違いを吸収するソースコードの書き方についてまとめること。 こちらも Web 上にナレッジがあまりまとまっていない。 これについては今 python-future というパッケージがアツい。 尚、サポートするバージョンは以下の通り。 2.x 系: 2.6 と 2.7 3.x 系: 3.3 と 3.4 題に入る前に、最近の Python 事情についてまとめ

    Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER
  • Pythonらしいコードの書き方 - Kesinの知見置き場

    はてなブログに移行して最初の記事はやはりPythonネタにしました。 はてなブログいいですね。デザインの編集がやりやすくなったのと、Markdownで書けるのが素晴らしいです。 PyCon 2013の動画を見ていたら、素晴らしい"Transforming Code into Beautiful, Idiomatic Python"という発表を見つけたのでそのまとめです。 今どきのPythonコードのベターな書き方を紹介しています。 Transforming Code into Beautiful, Idiomatic Python ... スライドはこちらにありました 結構長くなってしまったので、知ってる項目は読み飛ばしてもらえばと思います。 ループの基 整数のループ まずは基のループ。 Cのfor int i=0; i<6; i++をPythonで単純に書くとこうなります。 for

    Pythonらしいコードの書き方 - Kesinの知見置き場
  • setup.pyには何を書くべきか - カイワレの大冒険 Second

    前回のPython製コマンドラインツールのディレクトリ構成について。その考察。の続きです。 はてブコメントやFBでのコメントでsetup.pyに関する言及がいくつかあったので、どのようなことを書いたほうがいいのか調べてみました。 setup スクリプトを書くやいくつかのソースコード読んでみた範囲ですが、前回の記事のsetup.pyを見直したくなったので、まとめておきます。 前回の記事で書いたsetup.pyは以下。 1 2 3 4 5 6 import os from distutils.core import setup setup(name='SAMPLE_PROJECT', version='1.0.0' ) 正直ちゃんと理解してなく、かなり雑でした。ので、色々見なおした結果以下のようなものに。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

  • Python製コマンドラインツールのディレクトリ構成について。その考察。 - カイワレの大冒険 Second

    はじめに 去年ぐらいからPython製のコマンドラインのツールをいくつか作っていて、構成もだいぶ固まってきたので、まとめてみる。規模としては1ファイルでは終わらないぐらいで、関数の数も数十になってユーティリティを作ったり、クラスをいくつか作らないと、保守がしにくいような規模のものを想定しています。工数としては1日では終わらないけど、2週間はかからない程度の規模を想定。 構成 ということで、まず構成をさらしてみます。 こんな感じ。 SAMPLE_PROJECTレポジトリがあったとして、その具体的な構成が以下。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 . ├── README.md ├── RELEASE.md ├── TODO ├── bin │   ├── command1 │   ├── comm

  • Pythonのモジュールについてまとめてみたよ

    Pythonのモジュールについて復習&まとめてみました。 基Pythonでは拡張子が「py,pyc,pyo」のファイルをモジュールとして読み込むことができます。 モジュールはimportによって読み込まれた時点で実行され、モジュールオブジェクトとしてアクセスできるようになります。 Pythonにおけるグローバルスコープはモジュールに限定されており、 意図的に書き換えない限り実行されたコードが他のモジュールの値に影響を及ぼすことはありません。 また、グローバルスコープに宣言されたオブジェクトはモジュールオブジェクトの属性としてアクセスすることができます。 これはグローバル変数やモジュール変数と言ったりします。 このあたりについて詳しく知りたい方は以下をを参照ください。 Pythonのスコープについてhttps://note.crohaco.net/2017/python-scope/ Py

    Pythonのモジュールについてまとめてみたよ
  • Go vs. Python

    Go vs. Python Learning Go by comparing how you'd do it in Python Check out this blog post for the backstory and ability to comment. Or comment by filing issues on GitHub.

  • http://edmaps.co/udacity/course/cs101.html

  • Python製デプロイツール Fabricを初めて使う際に役立つTips

    by @dekokun on 2013/04/07 19:30 Tagged as: Python, Fabric, デプロイツール. 2013/04/09 追記 意外と反響があるようなので、Tips追加しました。 2013/05/10 追記 並列実行について調べたのでついでに追記 「次のプロダクトはシンプルなデプロイツールだと噂のCinnamonでも使ってみるかー」と言っていたら、「Cinnamonは使ってるユーザ数が少なそうだし同様のことが行えるFabricのほうがいいんじゃないですかね。」というツッコミをいただき、今回はPerlプロジェクトでもないためFabricを使用することにしました。 初めて触るFabric、やはり初学者にはいろいろとよくわからない部分があったため、はまって解決したことや便利なTipsなどをつらつらと列挙していきます。 なお、以下情報はPython2.7及びF

    Python製デプロイツール Fabricを初めて使う際に役立つTips
  • EC2編~Amazon Linux Python Update 2.7~

    こんにちは! JQです。 前回は『RDS編~Oracle Enterprise Manager~』 ということで、RDSのOracleでOEMを設定してみました。 今回は『EC2編~Amazon Linux Python Update 2.7~』と題して、Amazon LinuxPython をアップデートしてbotoをインストールしてみたいと思います。 Amazon Linuxでは標準でPython2.6がインストールされています。 Python2.7を使用したい場合に備えてインストールしてみたいと思います。 Python2.7のインストール 1.現状のVersion確認 先ずは現在インストールされているVersionを確認してみます。

  • Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD

    Pythonを始めたばかりのユーザーの多くが、どちらのバージョンを使えばいいのか迷っています。私の答えは、「気に入ったチュートリアルに書かれているバージョンにしましょう。そして、あとで違いを調べてください」という言葉につきます。 それでは、新しいプロジェクトを始めるときにはどちらを選べばいいのでしょうか? 使おうとしているライブラリを全てサポートしているなら、2.7.x系と3.x系のどちらを使ってもよいでしょう。そうはいっても、この2つのメジャーバージョンについて大きな違いを見ておくのは良いでしょう。どちらかのみでコードを書いたり、プロジェクトに使おうとしている時によくある落とし穴を避けられるからです。 __future__ モジュール Python 3.x で導入されていて Python 2 で使えないキーワードについては、 __furute__ モジュールをインポートすることで Pyt

    Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD