投稿

ラベル(python)が付いた投稿を表示しています

Pythonをオフラインでインストールする(Linux)

イメージ
Pythonをオフラインでインストールする(Linux) Pythonをオフラインでインストールする(Linux) 以前、 Node.jsをオフラインでインストールする(Linux) という記事を投稿していましたが、 今回は Python について、オフライン環境でインストールをする方法を紹介していこうと思います。 趣旨としては前回同様に、 インターネットに接続のできない環境 で資材インストールをする手順を纏めるものです。 通常はインターネット接続できるので不要ですが、仕事などで使うサーバーなどではよくあることだと思うので、よければ参考にしてみてください。 ちなみにインターネットに接続することができる環境でも、この方法を用いても問題はないです。 インストール手順 今回のオフラインインストールはLinux環境での内容です。 また資材のダウンロードはオンライン環境で実施するため、オフライン環境に資材を持っていく部分は各自の環境に沿って実施してください。 資材準備 まずは下記公式サイトにアクセスし、資材をダウンロードしてきます。 これはインターネットに繋がる端末で実施します。 ・ Download Python 「ダウンロード」の「すべてのリリース」から任意のバージョンを選択します。 今回は、 3.12.4 を選択し、「Files」の「XZ compressed source tarball」をクリックします。 資材転送 ダウンロードしたバイナリファイルをオフライン環境に持っていきます。 ...

PythonでC#(dll)を利用する方法

PythonでC#(dll)を利用する方法 PythonでC#(dll)を利用する方法 私は今まで、 C# での開発をする機会が多かったのですが、最近はAI関連のアプリ構築の関係で python を多く使用しています。 Pythonもライブラリが豊富なので、pipでインストールできるライブラリで大半のことができます。 しかし、ニッチなライブラリは自作するなどのしないといけず、 「過去にC#で構築したものが使えればなぁ」 と感じる場面が増えてきました。 そんな中、ふと「確かnumpyってC++で構築されたライブラリって言っていたな」と思い、もしかしたらpythonでdllを利用する方法があるのではないかと思い立ったのです。 そしたらちゃんと方法があったので、今回はこれを紹介していきたいと思います。 pythonnet pythonからdllを呼び出すには pythonnet というライブラリを使うことで実現できます。 ※dllを呼び出すためには、そのSDKも必要になるので注意。(例:.Net6など) 導入方法と使用方法を紹介していきます。 今回は自作ライブラリである Transcript4CSV の呼び出しを例にします。 ライブラリの導入 下記コマンドを実行してライブラリをインストールします。 pip install pythonnet import 下記コードを記述し、ライブラリをコード内で利用できるようにします。 from pythonnet import load load('coreclr') import clr ...

protobufのバージョンエラーが再発する

protobufでエラーになる protobufのバージョンエラーが再発する 私は最近 Docker で開発を再開したのですが、 python のエラーが多々発生したのでその解消方法を紹介したいと思います。 TypeError: Descriptors cannot not be created directly. 特に悩まされたのが protobuf です。 pythonスクリプトを起動していると、下記のようなエラーが発生することがあると思います。 TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). エラー文言で検索をかけると、エラー文に表示されている通り、 protobuf のバージョンを下げたものを再インストールすることで解決したという記事が多く見つかります。 pip install protobuf==3.20.1 しかし私の環境ではなぜか解決せず、、 正確に言うと解決したのですが、偶に再発することがあったのです。 ...