pyenv について

【GitHub】:Simple Python Version Management: pyenv はじめに pyenvはPythonのバージョン管理と切替を容易にするツールであり。UNIXの思想(single-purpose tools that do one thing well)にしたがって作られています。 How to use pyenvは高いレベルにおいて、Pathに実行可能ファイルを注入し、割り込みをします。これによって、複数のPythonバージョンの中から、アプリケーションに対して適切なバージョンのみを実行させることができます。 Understanding Path Pythonコマンドやpipコマンドを打つとOSがディレクトリ のリストを探索し、実行可能なファイル名を見つけます。このディレクトリ のリストのことを環境変数と呼びます。 ディレクトリ リストは、コロンによって分けられています。 /usr/local/bin:/usr/bin:/bin 上記の環境変数の場合は、左から順に探索されるため、/usr/local/binが探索結果になります。 Under standing Shims pyenvはPATH(環境変数)の前にShimディレクトリ を挟むことで動作します。 $(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin redhaningと呼ばれるプロセスを通して、pyenvはディレクトリ 内のShimsを維持することで、全てのバージョンごとにpython, pipコマンドなどが動作するようになっています。 Shimsは軽量で、以下のようなシンプルな行程で処理を行います。インストール後に、pipコマンドを入力すると、 実行可能なpipというファイルを環境変数の中から探します。 pipという名前のShimsを見つけます。 pipという名前のShimを実行します。 Choosing the Python Version Shimを実行した時に、pyenvはどのPythonバージョンを実行するのかを以下のソースから決定します。 PYENV_VERSION`環境変数。`pyenv shellコマンドで、現在のShellセッションに環境変数を設定することができます。 アプリケーションで特定のバージョンを使いたい時は、カレントディレクトリにある.python-version`を`pyenv localコマンドで修正することができます。 ルートディレクトリ に行くまでの間に、最初に見つかった、.python-versionファイルが適用されます。 $(pyenv root)/version`グローバルな環境変数は、`pyenv globalで修正することができます。pyenv globalはsystemを使うことを推奨しています。…

pythonからC#で書いたプログラムを呼び出す環境を作成する

pythonnetが動く環境を構築 最終的にやりたいこと 【Qiita】Pythonから.NETを呼び出す方法とついでにその逆も まず pip install が上手くいかない C#でSeleniumを制御するプログラムを書いて、それをPythonで制御する環境を作りたいと思い、 【Git Hub】github.com/pythonnet/pythonnet をPCに導入しようとしたのですが、 % pip install pythonnet Collecting pythonnet Using cached https://files.pythonhosted.org/packages/4a/0a/5964a5a1fdf207fab8e718edd1f8d3578e0681577fe9abe0d9006f9718c2/pythonnet-2.4.0.tar.gz Building wheels for collected packages: pythonnet Building wheel for pythonnet (setup.py) … error ERROR: Command errored out with exit status 1: 〜省略〜 error: option –single-version-externally-managed not recognized —————————————- /private/var/folders/4c/prz_dt794mb388lchggvsw5m0000gp/T/pip-record-_lkos68u/install-record.txt –single-version-externally-managed –compile Check the logs for…

Azure CLIとAzure PowerShell、どっち使う問題

4日間、Azureチュートリアルを迷走して、一番困ったのが、Azure CLIが何なのか分からなかったという点でした。 4日間、迷走した僕の結論としては、Azure PowerShellとAzure CLIのどちらを使うか迷っているということであれば、Azure CLI一択ということです。 その理由としては以下の通り。 チュートリアルのほとんどがAzure CLIコマンドで書かれている。 Azure CLI はBash向けに開発されているので、Bashが入ってさえいればどの環境でも同じコマンドで操作ができる。 コマンドがazから始まるので、ドキュメントを読んでいて、どのコマンドがAzure CLIなのかが分かりやすい。個人的にはコマンドを調べる時にも調べやすいと感じた。 最初、ローカルなBashとAzure上のBash(Azure CLI)の違いが分からず、ドキュメントを読む以前の問題だったた。この時に、Azure CLIさえ入れておけば大丈夫と知っていたら、作業を何時間短縮できたか… ということで、AzureコマンドラインはAzure CLI一択という結論に至りました。 Azure PowerShellは機能をモジュール単位で提供しているため、使いこなすのが大変そうという印象があったことも、Azure PowerShellを敬遠した一つの理由です。 それでは、良いAzureライフを!! Azure コマンド ライン インターフェイス (CLI)

Azure pipeline – Build anaimage –

Docker周りの知識がまだまだ甘々なので、「英語のドキュメントを読んでみたシリーズ」の第一弾はデプロイ編とします。 原文 読了までの所要時間: 4 分 Azure Pipelines Azure Pipelines can be used to build images for any repository containing a Dockerfile. Building of both Linux and Windows containers is possible based on the agent platform used for the build. AzurePipelinesはDockerfileを含んだリポジトリのビルドを行うために利用することができます。 LinuxやWindowsコンテナのビルドは、agent platformによってのみ可能となる。 Get the code Fork the following repository containing a sample application and a Dockerfile:…

Google for Jobのトップページを読んでみた

Google for Jobs: Everything you need to know to optimize for better ranking 今日は、求人情報を横断的に検索できるサービスである「Google for Job」の公式トップページを読んでいきます。 修飾詞な部分は訳さなくても、意味が取れるため、読みやすいようにカッコ付をしていきます。 This tool gives in-house SEOs an edge to rank organically with job ads (in a fiercely competitive recruiting market). このツールは、(競争の激しい人材紹介市場において)組織的なSEO対策を提供します。 Looking for a new job can be a stressful experience. Even taking away the emotional part of the…

Azure PowerShellを導入してみた。

業務にて、Docker ContainerをAzure上にデプロイする必要があったのですが、Azure Powershellの存在を知ったのが今日だったこともあり、時間内に作業が終わらせられませんでした。 今日やろうとした作業:「チュートリアル:Azure Container Registry タスクを使用して、クラウドでコンテナー イメージをビルドしてデプロイする」 Azure Cloud Shellが使えれば楽勝なんだろうけど、権限の問題で使えなかった。仕方なくAzure PowerShellでやる方法も模索するも上手くいかず… エンジニアであるからにはコマンドラインから、クラウドを華麗に扱えるようになりたいですね!! ということで、今日はAzure PowerShellのドキュメントを読んでいこうと思います。 まずは、コマンドでAzure Power Shellを入れていきます。Macユーザーはお馴染みのbrewコマンドで、WindowsユーザーはChocolateyを使いましょう。 [debonki] % brew cask install powershell インストールを確認します。記事を書いている時のバージョンは6.2.3でした。 PS /Users/debonki> $PSVersionTable Name Value —- —– PSVersion 6.2.3 PSEdition Core GitCommitId 6.2.3 OS Darwin 19.0.0 Darwin Kernel Version 19.0.0: Thu… Platform Unix PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3…

Azure DevOps 無料枠を使ってみた

Azuer DevOpsは五人までなら無料でプロジェクトを作成することができます。 今回は、Azure DevOpsを試しに使ってみました。 まず、Azure DevOpsで何ができるかというと プライベートリポジトリの作成・管理 CI / CD ツールを使ったビルド、デプロイ、テスト、の自動化(一個の並列ジョブまでなら無料) チーム内でのWikiの共有 Docker統合 といった、自分のような新参者から見ても、とても魅力的な機能が備わっています。 これが無料で試せるというヤバさですよ。 まだ試せていないのですが、他にも「Azure Test Plans」といったテストツールや「Azure Artifacts」といったパッケージ管理ツールがあることに加え、Marketplaceから拡張機能を追加することもできます。 それでは、簡単に、プロジェクト作成から、リポジトリの作成までの流れを見ていきましょう。 プライベートリポジトリの利用 Azure DevOpsのUIはとても見やすく、手順書とか必要ないんじゃないかという感じで、Azureを触ったことがないという人も、この記事を流し読みすれば、Azure Gitは雰囲気で使えるようになるんじゃないかと思います。 まず、URLからクローンするためにプライベートリポジトリーのURLをコピーします。一応、パブリックリポジトリも最初に選択できます。 SourceTreeでクローンすると、パスワードが求められるので、上図の「Generate Git Credential」からパスワードをコピーし、貼り付けます。 ローカルにクローンできたら、ローカルリポジトリに変更を加えてプッシュすると、リモートリポジトリに変更が反映されます。 これがあるだけで、チーム開発時のコードレビューがやりやすくなり、開発が楽しくなると思います。 次回は、、 業務で使うことになりそうなので、CI/CDツールの記事を描こうと思います。 Azure Pipelinesを使ってみた

Azure Functionチュートリアルをやってみた

.NET Core2.2でAzure Functionのプロジェクトを作成できるチュートリアルがあったのでやってみました。 Link:関数の作成 – C# (公式ドキュメント) Azure Functionはサーバーレスなサービスで、料金もあまりかからないところも魅力です。 Functionの価格設定は、毎月の関数の実行回数から算出されており、100万回アクセスまでは、無料(参考)となっているため、個人利用であればほぼ使い放題です。 今回は、このAzure Functionを試していきます。 プロジェクトの作成 選択するのはマーカーで印がつけられた部分 Function ランタイム :.NET Core2.2 関数テンプレート : HTTPトリガー → HTTP要求がトリガーとなって関数が呼ばれます。 ストレージアカウント : ストレージアカウントエミュレーター 承認レベル : Anonymous →Anonymousとすると、全てのクライアントからトリガーできます。チュートリアルのなので、とりあえずAnonymousとしました。 作成ボタンをクリックすると、プロジェクトが作成されます。 関数だけなので、かなりシンプルな構成ですね。 [FunctionName("Function1")] の部分が、関数名になります。 試しに「F5」キーを押して実行してみましょう。 Azure Function Core Toolsと呼ばれるコンソールが表示され、アプリケーションの動作が確認できます。 Visual Studioさん流石です コンソール画面の出力から、 赤線部のURLをコピーし、ブラウザーでの応答を確認します。 http://localhost:7071/api/Function1?name=debobonetとURLをたたいたら、Hello, debobonetという出力が返ってくることが確認できます。 これで、ローカル環境での開発は終わりです。簡単ですね Azureにデプロイ 次はAzureにプロジェクトを発行していきます。本来であれば、コマンドを叩いたりなどの操作が必要だったりすることが多いのですが、Visual Studioにはデプロイの機能も備わっています。 「ソリューションエクスプローラー」から、プロジェクトを右クリックし、「発行」を選択すると以下の画面へと遷移します。 Visual Studio Proのライセンスを持っていると、5000円分のAzureクレジットも付いてくるため、Visual Studio Professionalというサブスクリプションが選択できます。…

Syntax Highlighterプラグインでhtml特殊文字がエスケープされてしまう。

気合を入れてWordpressでブログを運営してみようと思いノリノリでSyntax Highlighterプラグインを入れてみたのですが、理想通りのものにならず、悔しい思いをしたのでその時の備忘録。 2019年11月16日時点でSyntax HighLighterはPrismaticというプラグインを使っていたのですが、html特殊文字の扱いに苦労したため、Crayon syntax highlighterに乗り換えました。 自分が使っているテーマはアルバトロスです。 現状 左側がマークダウンの状態で、矢印のように変換されるはずなのですが… 実際のところ「>」が特殊文字として判定され、変換されてしまいます😭 Prismの配色がとても気に入っていただけに本当に残念 いろいろと調べたのですが、結局Crayon syntax highlighterに乗り換えました。 Crayon syntax highlighterの場合、設定にて 赤四角のようにチェックを入れるとhtmlタグが不用意にエンコードされなくなります。 ただ見た目に関してはprismの方を圧倒的に気に入っていたので、できればもう一度prismに乗り換えたいなぁ WordPressのシンタックスハイライトをprismjsに乗り換えた

LINQの書き方(C#)

LINQとは LINQについて、Webサイトで調べると、"LINQはプログラミング言語(C#やVB)に統合されたクエリ用言語です。通常データベースアクセスに使用するSQLが、C#やVBのプログラム内では文字列として扱われるのに対し、LINQはそれ自体が言語に統合されたクエリとして認識されます。( 参考 )などと書かれていたりしますが、書籍管理アプリでLINQを使う場合のサンプルがあったほうが、わかりやすいかと思いますので、サンプルを貼っていきます。 基本的な考え方 ここでは、蔵書テーブルに対するやり取りのサンプルコードを使用します クエリ文の宣言 var Books = from m in _context.BookCollection select m; 条件を加える // 廃棄フラグが0の場合という条件を加える Books = Books.Where(s => s.FlgDisposal == "0"); リストとして実体化する // ここでは、非同期でクエリ文を実行して、BookListにテーブルのデータをリストにして格納しています。 var BookList = await Books.ToListAsync(); 1~3までの処理を一行にまとめる var BookList = await _context.BookCollection.Where(s => s.FlgDisposal == "0").ToListAsync(); 処理を一行でまとめるとシンプルなコードが書けるのですが、 クエリ文を作成するところと、実体化する部分を分けることによって 、検索やソートの処理を簡単に実装することができます。以下は参考です。 Microsoft Document→ ASP.NET Core の Razor Pages と…