タグ

pythonに関するfumikonyのブックマーク (155)

  • サーバーアプリ開発環境(Python/FastAPI) | フューチャー技術ブログ

    Pythonでお仕事する前提で、現在のところで自分が最適と考えるチーム開発のための環境整備についてまとめてみました。今までももろもろ散発的に記事に書いたりしていたのですが、Poetryで環境を作ってみたのと、過去のもろもろの情報がまとまったものが個人的にも欲しかったのでまとめました。前提としては次の通りです。 パッケージ管理や開発環境整備でPoetryを使う 今時はコードフォーマッター、静的チェックは当たり前ですよね? コマンドでテスト実行、コードチェックとか実行とかができる(CI/CD等を考えて) VSCodeでもコマンドで実行しているのと同じコードチェックが可能(ここコンフリクトすると困る) デプロイはDockerイメージ コンテナのデプロイ環境でコンテナに割り当てられたCPU能力を比較的引き出せて、スケールさせたら線形にパフォーマンスアップできるようなasyncioを前提とした環境構

    サーバーアプリ開発環境(Python/FastAPI) | フューチャー技術ブログ
  • Boto3 に追加されたリトライ処理モードを利用する - Qiita

    はじめに AWS SDK は Exponential Backoff による自動再試行ロジックが実装されていますが、 Boto3 では 3 つのリトライ処理モードを選択できます。 legacy (デフォルト) standard adaptive botocore の GitHub リポジトリを確認すると、2020年2月ごろに standard および adaptive が 追加され、それ以前の実装は legacy という名称になっています。 Add support for new retry modes #1972 互換性のため、デフォルトが legacy となっており、standard/adaptive で追加された機能を 利用するにはリトライ処理モードを明示的に変更する必要があります。 リトライ処理モードの変更方法 botocore の config オブジェクトをインスタンス化し、設

    Boto3 に追加されたリトライ処理モードを利用する - Qiita
  • Pipenvを使ったPython開発まとめ - Qiita

    はじめに 今年は複数人でいっしょにPythonを使って開発を行う機会があったのですが,そのときに導入したPipenvがいい感じでしたので一通りの基操作についてまとめてみようと思います.個人での開発でも有効だと思いますが,複数人で開発するときに便利かなと感じたところも多かったので,そういう視点も入れながらまとめてみました. ※個人的にチームでの開発でよかった内容にをつけています. Pipenvとは Pythonで開発するときに,プロジェクト毎のパッケージ管理や仮想環境の構築を簡単に自動で行ってくれるツールです.Node.jsのnpmなんかを使ったことがあればイメージがわきやすいと思います. パッケージのインストールならpip,仮想環境の構築ならvirtualenv(venv)を使えば対応できますが,pipenvはそれらをまとめてより簡単に扱えるようにサポートしてくれます.またnpm-scr

    Pipenvを使ったPython開発まとめ - Qiita
  • Pipenvに移行した話

    Pipenvに移行した話¶ Pipenv がPyPAに移ってからしばらく経ちました。 以前個人のPC環境は virtualenvwrapper を使用していましたが、折を見て自分も pipenv に移行しました。 理由は次の3つです。 virtualenvwrapper スクリプトが bash 起動を遅くする原因になっていた Windows/macOS/Linux問わず同じように使いたかった peco&ghq でのディレクトリの移動や管理に慣れてきた (peco&ghq に関する記事は探すと色々あったのでこの記事では割愛します。) 現在主に使う環境はこんな感じでやってます。 OS macOS Sierra/Ubuntu 17.10 Python 3.6.x pipenv 11.8.0 Pipenvとはなんぞや¶ 稲田さんのツイートによるとこうです。 https://twitter.com/

  • Pipenv: 人間のためのPython開発ワークフロー

    Pipenv: 人間のためのPython開発ワークフロー¶ Pipenv は、全てのパッケージングの世界 (bundler、composer、npm、cargo、yarnなどなど。) における最高のものをPythonの世界にもたらすことを目的としたツールです。 我々の世界ではWindowsは第一級市民です。 Pipenvは、手動でパッケージのインストールおよびアンインストールを行うのと同じように Pipfile に対してパッケージの追加および削除を行うのに加え、自動でプロジェクト用の仮想環境を作成し管理します。 またPipenvは、いかなるときも重要な Pipfile.lock を生成し、これを利用しビルドが常に同じ結果になるようにします。 Pipenvは主にアプリケーションのユーザーと開発者に、簡単に作業環境を作れる方法を提供するためのツールです。 ライブラリとアプリケーションの違いや、

  • 【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築 - フリーランチ食べたい

    Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。 TL;DR Dockerfile内では pipenv install --system --ignore-pipfile --deploy を使う。 Pipfile.lockは更新用にコンテナを作って、その中で更新し docker cp でホスト側に戻す。 pipenv install は現状時間がかかるので軽く使ってみたいときは pip install で試す。 あくまで自分が考えついたプラクティスなので「もっといい方法があるよ」「ウチではこうしてるよ」という意見があれば是非コメントくださいmm 課題 Dockerとpipenvを使った最も一般的な環境構築はDockerfile内で ADD P

    【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築 - フリーランチ食べたい
  • この処理Pythonでどう書く? - エムスリーテックブログ

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

    この処理Pythonでどう書く? - エムスリーテックブログ
  • AWS SDK for Python (Boto3)の エラーの再試行について | DevelopersIO

    API 呼び出しは様々な要因で一時的に失敗することがありますが、AWS SDKは自動再試行ロジックを実装しています。今回は、AWS SDK for Python (Boto3)でのリトライ回数の変更方法をご紹介します。 リトライ処理やエクスポネンシャルバックオフについてはAWSドキュメント AWS でのエラーの再試行とエクスポネンシャルバックオフ もご参照ください。 Boto3におけるリトライ処理、エクスポネンシャルバックオフ 自動でリトライ処理が実装されていますが、AWS SDK for Python (Boto3)ではデフォルトで5回エクスポネンシャルバックオフによるリトライ処理が実施されるようです。 Boto 3 Documentation | Config Referenceより 'max_attempts' -- An integer representing the maxim

    AWS SDK for Python (Boto3)の エラーの再試行について | DevelopersIO
  • AWS Command Line Interface

  • 最近の Python-dev (2017-03) : DSAS開発者の部屋

    バックナンバー: 2月号 1月号 Python 3.6.1rc1 Python 3.6.1rc1 がリリースされました。大きな問題がなければ 3.6.1 は 3/20 にリリースされる予定です。 3.6.1 は Github に移行してから初めてのリリースになります。なにか問題がないか確認するために、いつものRC版以上にソース形式・バイナリ形式両方の配布物のテストが必要なので、可能な方は協力をお願いします。 Github 移行後日談 以降から1ヶ月が経ちました。開発者からのフィードバックはおおむね好評です。私は、気軽にプルリクエストをくれた人がCLAにサインしないまま放置して大量のマージできないプルリクエストが貯まることを懸念していたのですが、今までののところそれも大丈夫そうです。 一方で Misc/NEWS といういわゆる changelog にあたるファイルが頻繁にコンフリクトを起こし

    最近の Python-dev (2017-03) : DSAS開発者の部屋
  • [小ネタ] pip 9 系にしたら pip list で警告出るようになったので止めたい | DevelopersIO

    こんにちは、藤です。 小ネタです。最近、pip listを実行すると、警告メッセージが出るようになったので、その対処方法についてのメモ書きです。 概要 先月から pip の 9 系がリリースされました。pip install -U pipで pip をアップグレードすると、9 系がインストールされます。気になったのが、pip listを打つ度に非推奨の警告メッセージが出力されるようになりました。 pip 9 系から pip list の表示形式が変わる過渡期となっていて、表示方式をしてね、という警告になります。都度、表示形式をオプション指定するのも面倒ですし、都度、警告を受けるのは嫌なので、以前と同様に利用したいです。 で、警告メッセージに pip.conf の [list] セクションで表示形式をしてね、とあるので pip.conf を作成すれば、都度、指定せずとも、警告メッセージが表

    [小ネタ] pip 9 系にしたら pip list で警告出るようになったので止めたい | DevelopersIO
  • Boto3でS3のpre-signed URLを生成する | DevelopersIO

    実際に実行すると以下のような URL が生成されます。 https://YOUR_BUCKET.s3.amazonaws.com/YOUR_KEY では、この URL を使って S3 にオブジェクトを登録してみましょう。 $ export URL=https://YOUR_BUCKET.s3.amazonaws.com/YOUR_KEY # generated pre-signed URL $ echo abcde > test.txt $ curl -D - -X PUT --upload-file test.txt $URL HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: 9J3B1F6kcpjEszB8w0RJCyOlJPdjWyNDHxRhiQ0bl9NmZGD64iysF/e9Wr9vDWxj4MN1KyOoIlo= x-amz

    Boto3でS3のpre-signed URLを生成する | DevelopersIO
  • プログラム初心者がAWS Lambda(Python)でハマった7個のこと - サーバーワークスエンジニアブログ

    私の所属している、"クラウドインテグレーション部技術1課"では、毎日5分程度の朝会というのをやっているのですが、ファシリテータをみんな忘れるので、適当に選出するbotを作成しました。 SlackのIncoming Webhookを用いて、メンバーをシャッフルしメンションする簡単なbotです。 朝の10時にしか動かないため、サーバーを起動させ続けているのは非常にもったいないので、Pythonでコードを書いて、AWS LambdaCronで動かすことにしたのがきっかけです 会社では"作らないSI"と言っていますが、普段はインフラエンジニアとして、基的にコードを書いていません。 ほとんど、サンデープログラマーです。 AWS Lambdaの初歩的なところでハマったんだ さて、こんな私が恥ずかしながら、Lambdaを使おうと思ってハマった事柄の、ごく簡単な忘備録を載せておきます。 1. ファイル

    プログラム初心者がAWS Lambda(Python)でハマった7個のこと - サーバーワークスエンジニアブログ
  • pyenvが必要かどうかフローチャート - Qiita

    pyspaの統合思念体の渋川です。 「pyenv使いましょう!」系の記事、全部ゴミ — Yoshifumi YAMAGUCHI (@ymotongpoo) September 29, 2016 これはpyenvがダメではなくて、pyenvをとりあえずインストールしておきましょう記事がダメという意味だそうです。すでにとんぷーが5年前にこの問題について書いています。これを読んで分かる人には不要です。 この記事では「便利」と「必要」は分けて考えています。後者にフォーカスしています。 前提知識 Environment Isolation Tool(環境分離ツール)というカテゴリの開発補助ツールがあります。pip install Sphinxとか書いたら、ライブラリはグローバル空間に入っちゃいます。複数バージョン入れられません。そんなときに使うのが、この環境分離ツールです。最近はいろいろな言語がこれ

    pyenvが必要かどうかフローチャート - Qiita
  • 【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め

    Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経

    【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め
  • https://github.com/dbravender/gitric/blob/master/gitric/api.py

  • prompt_toolkit がアツい - methaneのブログ

    とりあえず mycli と aws-shell のスクリーンキャストを見てください。 prompt_toolkit はこのようなリッチコンソールアプリを作るためのライブラリです。 Windows でも動きます。 Jupyter (ipython notebook) を切り離した、コンソール版の ipython も次のメジャーバージョンでは readline ベースから prompt_toolkit ベースに作りなおされています。 ipython 以外にも ptpython というシェルもあり、 ipython の各種 magic が不要な場合はこちらで十分でしょう。 https://github.com/jonathanslenders/python-prompt-toolkit#projects-using-prompt-toolkit には、他にも prompt_toolkit を採用

    prompt_toolkit がアツい - methaneのブログ
  • CentOS6 で Let's Encrypt #letsencrypt

    https がお手軽に使えるという letsencrypt を CentOS6.x で試そうとすると python2.7 の壁に当たる。CentOS6.x のデフォルトだと python のバージョンが 2.6 だから。そんでもって letsencrypt のスクリプトは対応が python2.7 からで python2.6 だとうまく動いてくれないという手厳しい状態になる。よっしゃ、じゃあ python2.7 入れたろかいと rpm 探すけど公式のは見当たらず、んじゃあソースからビルドしてみるかーっとやってみるけど今度は yum に怒られる(yum は pythonなのね)。いったん yum を忘れて突き進むものの、自分の力では letsencrypt が実行時にコピーする python のバイナリをどうしても 2.7 にすることができなくて断念した。 うわ、これは困った! と思ったけど

    CentOS6 で Let's Encrypt #letsencrypt
  • AWS Lambda Pythonでs3に接続する - Qiita

    AWS LambdaPythonに対応したので試しに使ってみました。 今回はS3のバケット間ファイルコピーに使ったのですが、色々とはまりどころがあったので共有したいと思います。 やりたいこと s3のバケット内に存在するファイルを別バケットにコピーしたい シングルプロセスでコピーすると遅いのでマルチプロセスで同時にバケットコピーしたい AWS Lambda Pythonを使いたい 主に3番目の理由からやってみました。 やったこと Lambda functionを作ってs3バケットを取得、コピーを並列で行うスクリプトを実装しました。 Lambda Functionの作成 Lambda Functionを作成します。 Create a Lambda Functionをクリック Select blue print 使用するテンプレートを選択します。 hello-world-pythonを選択 C

    AWS Lambda Pythonでs3に接続する - Qiita
  • JavaScripterがPythonについて教わった

    2023/12/20】【更新】まとめ作成時のツイートの取得や投稿にエラーが表示される場合がありましたが、現在復旧しており正常にご利用いただけます。ご迷惑おかけいたしました。

    JavaScripterがPythonについて教わった