Python関連のことを調べてみた

Python関連のことを調べてみた

仮想環境を用いたCellposeの実行

Cellposeは、機械学習を用いて細胞の顕微鏡画像から細胞をセグメンテーションするためのツールである。

今回は、Cellposeのインストールから実行環境の立ち上げまで自分の備忘録用にまとめる。

なお、基本的には以下のレポジトリのREADME(特に、[オプション 2: Python の venv を使用したインストール手順](https://github.com/MouseLand/cellpose#option-2-installation-instructions-with-pythons-venv))に書かれていることをそのまま実行している。

https://github.com/MouseLand/cellpose

また、GPU(GeForceを使用)で学習するため、cudaは元からインストールされている。

環境:windows10, python3.12
pythonは、事前に3.8以降をインストールしておく必要あり。

# インストール
以下、ターミナルで実行。Mac, Linuxだとコマンドが若干異なるので注意。

1. 仮想環境を立ち上げるディレクトリに移

元記事を表示

Miniconda 24.9.2-0 におけるchannelsの設定

## はじめに
Anacondaの有償化に伴って`defaults`チャンネルを使用せず,`conda-forge`を使用するよう気を付けている.condaで`conda-forge`を使用するよう設定変更する際,[この記事](https://qiita.com/kimisyo/items/986802ea52974b92df27)を参考にしていたが,Miniconda 24.9.2-0では同様の手順で変更できなさそう.代わりにする本記事は,バージョン24.9.2-0でのchannelsの設定方法の備忘録である.

## `defaults`チャンネルの削除ができない
このバージョンのMinicondaで,特に設定はいじらずに適当な環境を作り,channels関連の挙動を見てみた.
– `conda install`するときは`defaults`チャンネルが表示される
– `conda config –show channels`では`defaults`が表示されない.代わりに`https://repo.anaconda.com/pkgs/main`と`https://repo.an

元記事を表示

【Windows】Pythonがとりあえず動けばいい人向けの環境構築

# Pythonをダウンロードする

・自分の使っているユーザー名がすべてローマ字であることを確認する

・https://www.python.org/downloads/windows/ 
上記のサイトに飛んで
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3052827/403f0a28-ccb6-f0ab-b123-e82aad9a40e0.png)
Stable Releasesの3.10以上のWindows installerをダウンロードする
64bitか32bitは各自のPCのCPUを確認してください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3052827/8eabd310-1736-ebba-abd9-f7352f8de04a.png)
インストーラーを起動したら上記のような画面が出る
赤のまるで囲った部分にチェックを入れ、そのまま指示に従ってインストールを進

元記事を表示

Python 3 エンジニア認定実践試験対策 (2)

Pythonを数年使ってきて、改めて知識の整理と最新仕様のキャッチアップのために Python 3 エンジニア認定実践試験を受験しようと思い、私的に作成した資料から簡易版を作成しました。
最後に練習問題を設けましたので、解説を読んだら記憶定着のために練習問題へチャレンジしてください。最後に答えを掲載しています。

# Python パッケージバージョンの統一管理

## 1. requirements.txtとは?
`requirements.txt`は、異なる環境(開発環境や本番環境など)で同じパッケージバージョンに統一するために使用するファイルです。
– 環境ごとに異なるバージョンを使うと、不具合が発生することがあります
– このファイルを使うことで、パッケージのバージョンを統一できます

## 2. requirements.txtの作成
### 自動作成
“`bash
pip freeze > requirements.txt # 現在の環境のパッケージとバージョンを一覧にしたファイルを作成
“`

## 3. requirements.txtの書式
– コメントは `#

元記事を表示

threadingを使ってもtkinterで固まってしまう

結論から言ってしまうとtkinterではなく僕のthreadingの使い方が間違っていました

# 固まる
tkinterでボタン押下時に固まらないようにthreadingを使ってマルチスレッドにさばくのは有名な話.
以下はボタンを押すとボックスに入力された時間だけ待機し大気中にプログレスバーを動かすプログラム.実行すると関数の処理は走るのだがプログレスバーは動かないしどうにも固まってしまう
“`python
import tkinter
from tkinter import ttk
import threading
import time

class Application(tkinter.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.master.geometry(“400×400″)
self.master.title(u”テスト”)
self.create_widg

元記事を表示

FXのAPIを取り込んで検証するコード(事前準備)

OANDAFXからAPIを取得し、検証をするためのコードを備忘録として残します。
正直に言うと、powershellの使い方がよく分かっていないので、今後書き直すかも…
powershellからjupyter notebookを起動するところまでになります。

“`ruby:qiita.rb
cd –
“`
cdでjupyterの存在するフォルダに移動します。

“`ruby:qiita.rb
.\Scripts\activate
“`
jupyter labを有効化し、

“`ruby:qiita.rb
jupyter lab
“`
このコードで起動します。
これかjupyter labからAPIを取得して検証していきます。

![スクリーンショット 2024-08-07 191752.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3797074/dd53cae5-9437-bdb4-4067-da41db79cb27.png)

元記事を表示

PythonのFastAPIを使ってDockerコンテナを構築してみた

# はじめに
AWSのECSの動作確認用に任意のポート番号のコンテナが必要となり、PythonのFastAPIを使ってDockerコンテナを構築してみました。実務では、コンテナイメージをECRにpushして使用しました。

当時、@kikutch と作業した際の内容を改良しました。

# 準備

“`sh:作業ディレクトリを作成
mkdir fastapi_app
cd fastapi_app
“`

“`sh:ファイルの配置
.
└── fastapi_app
├── Dockerfile
└── main.py
“`

### ファイル作成
“`dockerfile:Dockerfile
# ベースイメージとしてPython 3.11の軽量バージョンを使用
FROM python:3.11.3-slim-buster

# 作業ディレクトリを指定
WORKDIR /usr/src/app

# FastAPIとUvicornのインストール
# キャッシュを利用するため、依存関係インストールを先に実行
RUN pip install –no-cache-d

元記事を表示

Python 101: プログラミング初心者が知っておくべき5つの重要な概念

### Python 101: プログラミング初心者が知っておくべき5つの重要な概念

Pythonは初心者から上級者まで幅広いレベルで人気のあるプログラミング言語ですが、効率的に学ぶためには基礎となるいくつかの重要な概念を理解する必要があります。この記事では、Python初心者や中級者が特にミスしやすい、押さえておくべき5つの重要な概念を解説します。

### 目次
1. イントロダクション
2. ミュータブルとイミュータブル
3. リスト内包表記
4. 引数とパラメータ
5. `__name__ == “__main__”`の使い方
6. GIL(グローバルインタプリターロック)
7. まとめ
8. 参考文献

## 1. イントロダクション

Pythonで効率よくコードを書くためには、特定の基本概念を理解しておく必要があります。特にプロダクションコードを読んだり、自分でコードを再現する場面では、理解度が鍵となります。ここでは、開発者がPythonコードを自在に読み書きし、他の開発者とも共有できるようになるための基礎を解説していきます。

## 2. ミュータ

元記事を表示

Python 101: 知っておくべき10の重要な概念

### Python 101: 知っておくべき10の重要な概念

Pythonの基礎を学ぶ上で、押さえておくべき重要な概念を10個にまとめました。これらの概念を理解することで、Pythonプログラムの効率的なコード作成や読み取りが可能になります。

### 目次
1. はじめに
2. ファイル作成と変数の定義
3. データ型の基本
4. 型アノテーション
5. 定数の使い方
6. 関数の定義とパラメータ
7. クラスの基本
8. メソッドとselfの使い方
9. Dunderメソッドの活用
10. まとめと参考文献

## 1. はじめに

Pythonは初心者から上級者まで幅広く使われるプログラミング言語です。本記事では、Pythonプログラムを始めるために知っておくべき10の基本概念を解説します。

## 2. ファイル作成と変数の定義

– Pythonファイルは、`.py`拡張子を付けて作成し、Pythonインタプリタで実行されます。
– 変数は、`変数名 = 値` の形で定義され、再利用が容易です。たとえば、`name = “Bob”`、`age = 20

元記事を表示

Python 3 エンジニア認定実践試験対策 (1)

Pythonを数年使ってきて、改めて知識の整理と最新仕様のキャッチアップのために Python 3 エンジニア認定実践試験を受験しようと思い、私的に作成した資料から簡易版を作成しました。
最後に練習問題を設けましたので、解説を読んだら記憶定着のために練習問題へチャレンジしてください。最後に答えを掲載しています。

# Python パッケージ管理 (pip)の基本

## 1. Pipって何?
Pipは「Python Package Installer」の略で、Pythonのパッケージを管理する道具です。
– スマートフォンのアプリストアのように、必要な機能(パッケージ)を簡単にインストールできます
– パッケージは「PyPI (Python Package Index)」という公式サイトから提供されているので、パッケージの詳細を調べる時は、PyPI公式サイトを使います

## 2. Pipを使う前の準備
### まずは確認
“`bash
python -m pip –version # Pipが入っているか確認
“`

### もし入っていなければ
“`ba

元記事を表示

【Python】Qiita API 記事の閲覧数を集計

# 【Python】Qiita API 記事の閲覧数を集計

Qiitaは、エンジニアやプログラマー向けの情報共有プラットフォームとして広く利用されています。
自身の投稿記事のパフォーマンスを把握するために、記事の閲覧数を集計することは非常に有益です。

本記事では、Qiita APIを利用して自身の投稿記事の総閲覧数とトップ5の閲覧数を取得するPythonスクリプトについて、詳細に解説します。

## スクリプトの概要

以下に示すスクリプトは、Qiita APIを使用して認証済みユーザーの投稿記事を取得し、各記事の閲覧数を集計します。

最終的に、総記事数、総閲覧数、および閲覧数の多い上位10記事をコンソールに表示します。

“`python
import requests
import time

def get_qiita_articles(access_token):
# 初期設定
base_url = “https://qiita.com/api/v2/authenticated_user/items”
headers = {
“A

元記事を表示

時刻歴データの欠損値の補完方法いろいろ

# 概要
測定(時刻歴)データの中には,期せずして,欠損値(NaN:Not a Number)が含まれている場合がある.
Pythonで,様々なデータ補完を試みることができる.
Cursorエディタを使えば,一瞬で様々な補完方法を試すことができる.
# 欠損データ生成(サンプル)
“` interp_missing.py
# -*- coding: utf-8 -*-
# 欠損値を含むデータ生成ファイル
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータの作成
df = pd.DataFrame({‘A’: [1, 2, np.nan, 4], ‘B’: [5, np.nan, 7, 8]})
plt.figure(“サンプルデータ”)
plt.plot(df)
plt.show()
“`
![スクリーンショット 2024-11-07 0.09.46.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

初めてハッカソンに参加してみた!

PRTimesさん主催のハッカソンに参加させていただきました。
backend
workaround
test-movie
test-movie.new.py

# 実行環境
– Python 3.9.6
– moviepy

# ソースコード

# ソースコード
– 必要なライブラリのインポート
“`
from moviepy.editor import (
ImageClip,
AudioFileClip,
TextClip,
CompositeVideoClip,
CompositeAudioClip,
concatenate_audioclips
)
“`

– 関数の定義
この関数では画像(サムネイル)ファイル、背景動画ファイル、字幕リストを受け取り、それらを組み合わせて動画を作るための処理が行われます。
“`
def generate_movie(image_path: str, background_path: str, subtitles: list):
“`

– 背景画像の読み込み、リサイズ
背景

元記事を表示

Pythonでsocketを使ったタスク間通信

# Pythonのタスク間でデータを共有する方法
FlaskやFletのようなフレームワークを使っていると、インポートしたライブラリがうまく動かないものがある。
win32com.clientで起動した、DAOオブジェクトやExcelオブジェクトはFletで起動できなかったため、1対1で動作するタスクとしてDAOとExcelを制御する部分を起動しSocketでタスク間通信を行った。

# サーバー側
今回は、低水準ソケットを使ってTCPで通信する

“` python
import socket

def aeServ():
HOST=”
PORT=5000
BLEN=1024
skt=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#
def cnloop():
skt.listen()
conn, addr = skt.accept()
cmd = ‘-‘
while cmd != “close”:

元記事を表示

Pythonの@propertyについて理解しよう

# Pythonの`@property`について理解しよう
Pythonのクラスで`@property`デコレータを使うと、メソッドを属性のように使えるようになります。この記事では、プロパティの仕組みとその活用について説明します。

## プロパティとは?
* プロパティとは**メソッドをあたかも属性のように扱える仕組み**のことです

### プロパティの基本的な機能
* **計算や処理を実行して結果を返す**:単に値を返すだけでなく、内部で計算や処理を行い、その結果を返すことができます
* **ゲッターとセッターで値を制御する**:値の設定時に検証や制限を追加し、クラス内の状態を管理することができます
* ここでいうゲッターとは`@property`をつけたメソッドを指します
* セッターとは`@property`をつけたメソッド名にセットするメソッドをいいます
* セッターやプロパティでアクセスする変数名には通常`_(アンダースコア)`を一つつける慣習があります
* これは**外部から直接アクセスしてほしくない**ことを示すためです

以下に具体的な例を挙げてみます

元記事を表示

PythonCall.jlを既存のcondaで環境管理する方法

Juliaの勉強中。これまで`PyCall.jl`+`matplotlib`で作図していたが、今回`PythonCall.jl`+`matplotlib`の利用を試み、その環境管理の方法をまとめる。

結論、既存condaで管理しているenvsをそのまま利用することは自分にはできなかったが、既存condaの`conda`コマンドを利用してパッケージ管理をする方法にたどり着いた。

公式フォーラムでは、新たに導入するのであれば[PythonCall.jlをお勧めする](https://discourse.julialang.org/t/how-to-choose-between-pycall-jl-and-pythoncall-jl/100214)、と言っている人がいる。

## 環境
– Intel iMac, macOS Sequoia 15.0.1
– conda 23.11.0
– julia 1.11.1

## 0. juliaのアンインストール
`juliaup`の利用を想定。
環境変数の情報が内部に残るみたいで、ゼロから構築する方が確実だった。`.julia`も確実に削

元記事を表示

Docker + Python +Poetryの環境構築

# 目的
DockerでPython + Poetryの環境を構築しようとしたら、恐ろしく苦戦したためここに完成した環境のメモを残す。

# 構築環境
↓フォルダツリー
“`
C:
│ .gitignore
│ docker-compose.yml
│ README.md

└─backend
Dockerfile # 最初はbackendフォルダにDockerFileのみ作成。
poetry.lock
pyproject.toml
“`
↓docker-compose.yml
“`docker-compose.yml
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
volumes:
– ./backend:/app
working_dir: /app
ports:
– 8000:8000
tty: true
“`
↓Dockerfile
“`Docker

元記事を表示

PythonでかわいいSVGアニメーションを作ろう

## はじめに
SVGアニメーションを手書きするのって大変ですよね。
今回はPythonを使って、かわいいアニメーションを自動生成する方法を紹介します!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/db0bb7a3-4333-6bfc-5908-f07020d34a8e.png)

## 必要なもの
– Python 3.8以上
– svgwrite(`pip install svgwrite`)

## 完成イメージ
バウンドしながらまばたきする可愛い猫のアニメーションを作ります!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/7878eab3-3589-8023-43a8-77fe2185ac0c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

Pythonで時短開発!コーディングを加速するシンプルなテクニック

## はじめに
忙しいエンジニアにとって、開発効率を上げることは重要です。本記事では、Pythonでの開発を加速するための時短テクニックを紹介します。これらのテクニックは、日々の作業を少しずつ効率化してくれるので、ぜひ参考にしてみてください。

## 1. ワンライナーで処理を完結させる

Pythonはシンプルな構文を使って、1行で多くの処理を実行できます。以下は、特に便利なワンライナーの例です。

### 例1: リスト内包表記でリストを生成
“`python
squares = [x**2 for x in range(10)]
# 出力: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
“`

### 例2: if 文を含むワンライナー
“`python
even_numbers = [x for x in range(20) if x % 2 == 0]
# 出力: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
“`

## 2. `enumerate`でループ時のインデックスも取得

ループ内でインデックスが必要な

元記事を表示

【Dify】Transformersを使って質問文を生成してみた

# はじめに
本ブログでは、Transformersを使用して質問文を生成する方法を紹介していきます。DifyのナレッジにCSVファイルをインポートする際、質問文があるとより正確な回答が得られるのではないかと考え、Google Colab上で質問文生成を実装しました。実際の実装手順やポイントについても詳しく解説していきます。

# Difyとは
Difyは、ナレッジベースを活用した対話AIを構築・運用できるツールです。ユーザーが持つナレッジ(FAQや各種情報)をCSVや他の形式でインポートし、AIが質問に応じて適切な回答を提供できるようにします。ビジネスシーンでのカスタマーサポートや社内FAQの自動化に適しており、効率的な情報管理と活用が可能です。

# なぜ質問文を生成するのか
質問文をナレッジに追加すると、AIが質問の意図や背景を理解しやすくなります。これにより、回答がユーザーの期待により近いものになる可能性があります。また質問文が追加されていると、過去の質問と一致するかどうかが判定しやすくなります。これにより、類似質問があった際に自動で適切な回答を提供することができるかもしれませ

元記事を表示

OTHERカテゴリの最新記事