ラベル Python の投稿を表示しています。 すべての投稿を表示
ラベル Python の投稿を表示しています。 すべての投稿を表示

2025-11-17

VSCodeからGoogle Colaboratoryを利用可能に

 先日、表題のニュースがありました。以下、簡単な使い方メモ

1.拡張機能のインストール

  • Colabという名前の拡張機能があるのでインストール(Google製であることを確認)
2.JupiterNotebook形式でファイル作成
  • ファイル作成から、JupiterNotebook形式を選ぶ
3.カーネル選択
  • Colabを選ぶ
  • Auto Connectを選ぶとCPUだけ利用
  • GPUやTPUを利用したい場合は、New Colab Serverを選ぶ
というところですね。



2025-08-22

Python: flet+pystrayでメニューバー(タスクトレイ)常駐アプリ

 表題の通りです。このサンプルは単純ですが、アイコン画像を用意して、メニューをいろいろ追加していけばいい感じになるのかなと思います。



2025-07-10

Mac: error: externally-managed-environment というエラーが出た場合

これは PEP 668 で導入された新しい Python のセキュリティ仕様によるもので、特に macOS の Homebrew でインストールされた Python でよく見られます。

Homebrew は「システム Python 環境を壊さないため」に pip を直接使うことを制限しており、パッケージインストール時にこのエラーが出ます。

解決方法

  • 方法1: 仮想環境を使う(推奨)。anacondaやvenvを使うなどして、仮想環境を作成しそこでpipを行う
  • 方法2: pip に --break-system-packages をつける(簡易だが慎重に使う)
  • 方法3: pipx を使う。
本記事は、ChatGPTの内容をベースにしています。





2025-03-12

Python: xapiでステートメントを登録する(Learning Locker)

 表題の通り、LRSとしてLearning Lockerを使うことになったので、まずはPythonでのデータ(ステートメント)の登録方法など。一般的には、MoodleなどのLMSからLRSに送るので、コードでガリガリということはあまりないと思いますが・・・。

留意点としては(Learning Lockerを前提にしていますが)、

  •  エンドポイントのportは8081
  • usernameとかpasswordは、Learning Lockerにある管理画面のKey, Secretなどが該当
  • headerには"X-Experience-API-Version"が必須
というところですね。



2025-02-06

 FletでDropDownリストの選択された表示名を取得しようとしたら、意外と情報なかったのでメモ書き。要は、選択されたキーのオプションを探し出してtextを呼び出せばいいということらしい。もっとシンプルな方法ないのかな?



2024-12-31

WindowsにChromaDBをインストールする際の注意点

ChromaDBは、オープンソースのベクトルデータベースです。主にベクトル検索や類似性検索を目的としており、埋め込みベクトル(例えば、テキストや画像などから生成される特徴量ベクトル)を効率的に保存、検索、管理するためのデータベースとして設計されています。 

インストール方法

1.Microsoft C++ Build Toolsのインストール

Windowsでは標準でCのコンパイラはありませんので、インストール時のコンパイル処理(pipが自動的にやってくれます)行うために別途インストールする必要があります。

インストーラーが実行されるので、この際、「C++によるデスクトップ開発」を選んで、MSVCの最新版とWindows11 SDKを入れておきましょう。

2.pipでインストール

  • pip install chromadb
でOKです。




2024-11-11

Python:Google Classroom APIから授業リスト(コース一覧)を取得する処理

 以下の通りになります。serviceのインスタンスは生成済みとします。あとは特に特筆するところはないかと思います。



2024-08-08

Googleフォームで投稿されたファイルから学生の名前を削除する

Googleフォームで投稿されたファイルには、元のファイルだけでなく、学生の名前が自動的に付く仕様になっています(for Educationなどでログイン指定をした場合)。これは、はっきりいって邪魔なので削除するPythonスクリプトです。なお、ファイルはダウンロードしたうえでローカルで処理するアプローチです。Googleドライブ上でやってしまう場合は、GASかな。



2024-07-14

MediaPipeでFacemesh処理を実行する

 ラボでは最近、Mediapipeをよく使っていますが、そのサンプルです。



2023-10-16

Python: GoogleのOAuth認証の仕組みを理解する

すぐ忘れてしまうのでメモ書き。Googleのサービスにアクセスする際には、次の手順が必要です。なお、本記事は、GoogleClassroomAPI を利用する過程での処理なので、適時読み替えてください。

Google Cloud コンソールの設定と認証ファイルの作成
まずは、Google Cloudコンソールで、GoogleClassroomAPIを使えるようにしないといけません。詳細の手続きは、公式サイトを参照してください。ここで、大切なのは

  • Google Cloudプロジェクトを作成しておく(以下、全てこのプロジェクト内での操作になります)
  • Google Classroom API を有効にする(利用したいAPIをONにしましょう。細かな権限設定もできます)
  • 「APIとサービス」のところで認証情報に移動し、認証ファイルを作成しダウンロード
Google クライアントPythonライブラリのインストール
先程の公式サイトに書いてあるので、pip でインストールしましょう。

サンプルコードの実行
下記は、公式サイトの一部を抜粋したものです。ここで理解しておくべきことは、認証ファイルとトークンファイルについてです。
  • 認証ファイルは上記でダウンロードしたファイルです。コード内のcredentials.jsonに相当します
  • トークンファイルは、このコードを実行することで生成されるファイルです。このコードを実行するとブラウザが立ち上がり、認証を求められます。認証を済ませると、token.jsonファイルが作成されます。このトークンファイルは古くなると使えなくなるので定期的に消して書き換えることになるのだと思います
注意点
トークンファイル(token.json)は、スコープに関係しています。Google Cloud コンソールにてプロジェクトで扱えるスコープを設定したと思いますが、クライアント側(コード内)でも指定しないといけません。それが、コード内でのSCOPES変数に相当します。下記のサンプルでは、1つだけ指定してますが、配列として複数指定することは可能です。ここに書いたSCOPESに対応したトークンファイルが出来上がることになります。ですので、SCOPESを変更するときは、トークンファイルを消して再度生成し直してください。



2023-09-30

ColaboratoryにMecabを入れる初期設定

 表題の件。ChatGPTに聞いたら古い回答?(動かない回答)が返ってきたため、メモ書きです。

(参考)
http://int-info.com/index.php/google_collab_mecab/

2023-07-02

python: unicodeescape' codec can't decode bytes が出た場合の対処法(Windows)

WindowsでPythonで読み込みファイルのパス指定をした時に、表題のエラーがでることがあります。 これは、ファイルのパスを指定する際に、Windowsでディレクトリ名の区切りをしめす「¥(バックスラッシュ)」がエスケープ文字という規定された文字になっているからです。「\」をなぜバックスラッシュと読むのかというと、"¥"は"\"(実際は半角文字)に対応するからです。

解決策

3つあります

  • "/"(スラッシュ)に置き換える
  • "\\"と連続して書く
  • r"バックスラッシュのパス名"と書いてRAW文字扱いする
のどれかですね。ちなみにMacだと"/"(スラッシュ)がOSのパス指定で使われるので問題ありません。






2023-06-12

Flaskでウェブサーバーを公開する際の注意点(app.run編)

 Flaskはそのフレームワーク自体がウェブサーバーの機能を持っているので、プログラムを実行するだけで、ウェブアプリとして公開されるという利点があります。しかし、他のマシンからWebアプリとして公開するには、app.runの記述に注意が必要です。

設定すべき項目

下記のように、runメソッドを実行するときに、host='0.0.0.0'を設定する必要があります。この設定をしないと、localhost以外からのアクセスできません。

  • app.run(host='0.0.0.0', port=5050)

なお、上記のように実行時の環境情報をコード内にハードコーディングするのはあまり望ましい形ではありません。Flask-DotEnvというライブラリを利用することで、実行時の環境変数をアプリごとに設定できるようですので、それもありのようです。




2023-06-02

Kinect: PykinectAzureで骨格情報を取得する

 近年の画像AI技術が発展により、Kinectとかあまり注目されなくなりましたが、おちラボではデプスカメラとしての性能の良さなどに魅力を感じていることから、懲りずに使ってます。

といっても久しぶりな面もあり、最近流行りのPythonでも利用できることから、数あるライブラリの中で、

というのが使いやすそうです。で、sampleがいくつかあるのですが、骨格情報を取得するsampleがなぜか見当たらなかったので、以下に掲載します。まあ確かにC#やるよりはラクですね。OpenCVに対応するために画像変換もさほど気にしなくて良さそうですし。。



2023-05-17

Python:リダイレクトされるURLに対応したhttpリクエスト(urllib.requestを利用)

リダイレクトされるURLにアクセスするためのPythonコード。

  • 標準のhttp.clientでは、リダイレクトに対応できない
  • urllibは標準ライブラリに含まれる


2022-12-28

Anaconda Navigatorのアップデート方法

 Anaconda Navigatorの最新バージョンがいくつなのかは、

を見ることで確認できます。で、自分が使ってるNavitgatorのバージョンは Help →Aboutで確認すると、1年位古いのでバージョンアップ。その方法ですが、Anaconda-Promptを起動して、そこで以下のコマンドを打ちます。

conda update anaconda
conda update anaconda-navigator

でOKです。anacondaをアップデートするだけではダメなんですね。なんか、Navogatorの動作がいまいちな時、意外とアップデートで解決することがあるので、お試しあれ。

2022-12-16

OpenCV: 背景差分(Python編)

 OpenCVで背景差分を取得するプログラムです。びっくりするほど簡単にできてしまいますね。 ポイントとしては、

  • OpenCVには複数の背景差分アルゴリズムの関数が用意されている
  • 戻り値として、背景画素を0、前景画素を255とした2値画像が返される
というところです。これを応用すれば、人物だけ取り出すということも容易にできるわけです。



2022-11-13

Python:shutil.copyfileでPermission deniedが出た時

 表題の通り、ファイルをコピーしようとした時に、Permission deniedがでると、なにやらフォルダのアクセス権限に問題あるのかと思ったりしますが、これはcopyfile関数の誤解されやすい仕様です。

コマンドラインでファイルコピーになれている人は、ついつい

  • コピー元ファイル名、コピー先ディレクトリ
という発想をしがちでですが、この第2引数をディレクトリにしてしまうとこのエラーが出るようです。
  • コピー元ファイル名、コピー先ファイル名
というように、いずれの引数もファイル名まで指定しましょう。



2022-11-01

Anacondaのアップデート方法(Mac編)

 とりあえずメモ書き。以下のコマンドをターミナルで順番に打っていけばよい。

  1. conda update conda
  2. conda update --all
  3. conda update python  ←Pythonのアップデートをしておきたい場合
なお、Anaconda でのEnvironmentにあるパッケージのバージョンは、Anaconda.Navigatorからアップデートすることができます。矢印マークが付いているはずです。



2022-09-17

Python:Google Classroomの受講生のメールアドレスを取得する

Google Classroom APIについては、GASのサンプルはネットによく出回っているのですが、Pythonでの記述方法がよくわからなかったので、メモ書きです。GASの場合と異なるのは、SCOPEの宣言をしないといけないのと、credentialsファイルの読み込みも必要になってくる点ですね。スコープを変更する際には、credentialsファイルも作り直す必要があるので要注意です。