ryotankの備考録日記

趣味の電子工作についての備考録などなど

Pythonの現開発環境について

OS:windows8.1
Anaconda:4.10.1
VSCode:1.67.2
Python:3.8.5

VScodeは基本的にpythonのプログラミングに使っている

matplotlibはVScodeだと見ずらいので、
Anacondaでデータの可視化を検証したい時に使っている


今回は、Visual Studio Code上でAnacondaの仮想環境を使用してPythonをうごかす方法を
構築したいと思う

デフォルトではAnacondaのbaseと名前のついた環境に色んなパッケージがインストールされている


今回は、そのbase環境をコピーして
新たな環境をAnacondaの中に作りだす

作成した環境下でVSCodeが動作するように設定したい

まずAnacondaのPrompt上に、base環境をコピーして、新しく環境を作成するコマンドを入力する


一目でpythonのバージョン情報が分かるようにしたいので
py38という名前にする(これでpython3.8という環境であると分かる)

conda create -n py38 --clone base

10分以上経ってコマンドが実行された

確認のためAnaconda上の環境一覧を見るコマンドを入力し、ちゃんと環境が
出来ているか確認する

conda info -e

入力後、以下の通りになった

Anaconda上の環境一覧コマンド画面

*は現在いる環境を示している
これで新しくbase環境をコピーしたpy38環境を作る事が出来た

Anaconda promptは最後まで使うのでまだ閉じないで使う

VSCodeのパス設定について
VSCodeの歯車マークをクリックして設定を選択
Pythonのパスを設定するので検索欄で
「pythonpath」と入力し
枠線で囲ったDefault Interpreter Pathがそれに該当する箇所

pyhtonpathに該当する箇所画面

Interpreter Pathに
仮想環境構築した時に画面に乗っている

pythonのパス設定をpy38に変更画面

「C:Users\????/anaconda3\envs\py38」と入力した
????はユーザー名

Windows Powershellの設定
VSCodeではデフォルトのターミナルがWindows Powershell
なっている為、このWindows PowershellでAnacondaを使えるように
設定する必要がある
Anacondaプロンプト画面でWindows Powershellを使えるようにするコマンドを入力する


入力出来たらWindows Powershellの設定も行う

Windows Powershellを管理者として実行して開き
以下のコマンドを入力し、実行する

Powershellを管理者として実行する
Set-ExecutionPolicy RemoteSigned
PowershellをAnacondaの環境で使えるようにコマンドを入力した画面

コマンドを入力すると実行ポリシーを変更するか
聞かれるがyと入力し、実行し承諾する

これで
VSCodeWindows PowerShellがAnacondaの環境を使うことができるように

アークナイツその4

シェーシャは昇進2にした

シェーシャ昇進2Lv18

5月のアプデで新しく購買資格証の交換で追加された
星5医療ハニーベリーを昇進2にした

ハニーベリー昇進2Lv25

6月の上旬に第7回目の危機契約があるみたいなので
術師と医療を昇進2にしたい

術師は星5のコロセラム
医療は星5のフィリオプシスとワルファリンを候補に

フィリオプシス昇進1Lv45
ワルファリン昇進1Lv26

あと炎獄ラヴァも追加するか

炎獄ラヴァ昇進1Lv50

あとマンティコア

基板作りチェックリストその25

今回はフッター部分を作成していく

これが成功すれば、ヘッダーとフッター部分を混合させたものを作り
ちゃんとしたリスト表が完成する

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait
from reportlab.lib.units import cm

#特定のフォントを指定する為に
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont

file_name = '基板作りチェックフッター部分描画テスト2.pdf'  #ファイル名を設定
pdf = canvas.Canvas(file_name, pagesize=portrait(A4))  #pdfを生成、A4サイズ縦に設定
pdf.saveState() #セーブ

#PDFのファイル情報を作成する
pdf.setAuthor('python_checktest')  #作成者情報
pdf.setTitle('フッター部分描画テスト2')  #タイトル情報
pdf.setSubject('Footer_TEST2')  #件名情報

#図形の描画
pdf.rect(1*cm, 15*cm, 19*cm, 2*cm)  #長方形を描画する

### フォント、サイズを設定 ###
pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdf.setFont('HeiseiKakuGo-W5', 14)

### 文字を描画 (左からの位置、下からの位置、入れたい文字列)
pdf.drawString(2*cm, 16.5*cm, '分類名:___________基板  担当者確認年月日:   年   月   日')
pdf.drawString(2*cm, 15.5*cm, 'ガーバーデータを外注時には作成日より日を空けて確認する事!!!')

pdf.restoreState()
pdf.save()

解説

文字を描画するにはフォントを指定する為にライブラリをインポートする

フッター部分は下から約16.5cmから15.5cmの範囲に描画した

上記のコードを実行する
以下の通りになった

フッター部分描画テスト1_2022_5_16キャプチャ
フッター部分描画テスト2_2022_5_16キャプチャ.PNG

次回は、フッターとヘッダー部分を混合したものを作り
それが出来れば、リストの本体部と組み合わせた本来チェックリストをPDF化
したものを作っていく

基板作りチェックリストその24

ヘッダー部分を描画するテストコード

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait
from reportlab.lib.units import cm #cm単位で座標を指定

#特定のフォントを指定する為に
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont


file_name = '基板作りチェックヘッダー部分描画テスト2.pdf'  #ファイル名を設定
pdf = canvas.Canvas(file_name, pagesize=portrait(A4))  #pdfを生成、A4サイズ縦に設定
pdf.saveState() #セーブ

#PDFのファイル情報を作成する
pdf.setAuthor('python_checktest2')  #作成者情報
pdf.setTitle('ヘッダー部分描画テスト2')  #タイトル情報
pdf.setSubject('TESTヘッダー2')  #件名情報

### フォント、サイズを設定 ###
pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdf.setFont('HeiseiKakuGo-W5', 14)

### 文字を描画 (左からの位置、下からの位置、入れたい文字列)
pdf.drawString(2.2*cm, 26*cm, '基板名:____________  リスト作成年月日:   年   月   日')


#図形の描画
pdf.rect(2*cm, 25*cm, 17*cm, 2*cm)  #長方形を描画する

#保存
pdf.showPage()
pdf.save()

長方形を描画するには、
rectメソッドを使う  rect(float x, float y, float w, float h)というコードで表現可能
xは、長方形の左上の角のx座標 yは長方形の左上の角のy座標 wは長方形の幅 hは長方形の高さ

文字を描画する
ヘッダー部分に以下のような文字を描画する

「基板名:______    リスト作成年月日:    年    月     日」

解説
portraitは縦方向 reportlab.lib.unitsはcmでも出来るしmmでも設定可能

フォントを設定するには
#特定のフォントを指定する為に
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
上記のライブラリをインポートした上で

### フォント、サイズを設定 ###
pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdf.setFont('HeiseiKakuGo-W5', 14)
と書くと、フォントが決められる

上記のテストコードを実行すると以下のようになった

ヘッダー部分描画テスト1_2022_5_15キャプチャ

1回目はページ下部に正方形ができてしまった

ヘッダー部分描画テスト2_2022_5_15キャプチャ

2回目は上部に図形を描画出来た

ヘッダー部分描画テスト2_2022_5_16キャプチャ

3回目は希望通りに文字と図形を描画出来た

次回はフッター部分(A4下部の箇所)を作成する

基板作りチェックリストその23

日本語を含むpdfファイルを生成する
動作確認その1

A4縦のヘッダー部分に基板名とリスト作成年月日を描画する

ちなみにA4サイズは、縦が29.7cm 横が21.0cmとし
PDFファイル名は、基板作りチェックヘッダー部分描画テスト1.pdf
とする

文字の書き込みなどをする前に
最初に対象のPDFを生成する必要がある

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait

file_name = '基板作りチェックヘッダー部分描画テスト1.pdf'    # ファイル名を設定
pdf = canvas.Canvas(file_name, pagesize=portrait(A4))    # PDFを生成、サイズはA4
pdf.saveState()    # セーブ

上記のようにPDFサイズを指定したい場合は、setPageSizeメソッドを使う

次にPDFのファイル情報を設定する
これは、PDFのプロパティから確認出来る情報

pdf.setAuthor('python_checktest')    # 作成者情報
pdf.setTitle('ヘッダー部分描画テスト1')    #タイトル情報
pdf.setSubject('TEST1')    #件名情報

文字を書き込む
次に生成したPDFに文字を書き込む方法は

rom reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.lib.units import cm

### フォント、サイズを設定 ###
pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdf.setFont('HeiseiKakuGo-W5', 12)

### 文字を描画 ###
pdf.drawString(1*cm, 26*cm, 'ヘッダー部分描画テスト1')

pdf.setFont('HeiseiKakuGo-W5', 16)    # フォントサイズの変更
width, height = A4  # A4用紙のサイズ
pdf.drawCentredString(width / 2, height - 2*cm, 'テスト1')

ここでは文字の描画にdrawStringメソッドを使用しています。

drawString(左からの位置、下からの位置、文字列)

reportlabには日本語フォントとして、
「HeiseiMin-W3」と「 HeiseiKakuGo-W5」が用意されています。

線を描画する

線を描画する場合、まずは線の太さをsetLineWidthメソッドで指定する

setLineWidth(線の太さ)

次に線を描画するのにlineメソッドを使用します。
lineメソッドでは線のスタート位置(縦、横)と終了位置(縦、横)を
指定する必要があるので、4つの引数を指定します。

line(線のスタート位置縦、横、線の終了位置縦、横)
### 線の描画 ###
pdf.setLineWidth(1)
pdf.line(10*cm, 20*cm, 10*cm, 10*cm)


図形を描画する
 図形を描画する場合、最初に色をsetFillColorRGBメソッドで指定します。

図形の描画が終了したら色を元に戻すことを忘れないように

### 図形の描画 ###
pdf.setFillColorRGB(54, 54, 0)
pdf.rect(1*cm, 1*cm, 4*cm, 4*cm, stroke=1, fill=1) #長方形を描画する
pdf.setFillColorRGB(0, 0, 0)

長方形のほかにも色々な図形を描画するためのメソッドがある


次回は、実際にヘッダー部分を描画するテストコードを作成する

基板作りチェックリストその22

pythonのPDFライブラリ「ReportLab」を使ったpdfの生成の仕方

用紙サイズの指定は、reportlab.lib.pagesizesで定義されている
用紙サイズをCanvas作成に指定する。
デフォルトだとA4縦になっている

改ページにしたい場合は
showPageで、それまでにCanvasに対して行った操作を確定し、
ページを作成する。
saveを実行する事でPDFファイルの実体を作成可能になる

簡単な改ページのサンプルは以下

import os, sys

rom reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.lib.pagesizes import A4, portrait

fontname= "IPA Gothic"

#フォントファイルを指定し、フォントを登録する
pdfmetrics.registerFont(TTFont(fontname, './reportlab.zip/reportlab/fonts/ipag.ttf'))
c = canvas.Canvas("hello.pdf")

#1ページ目開始
c.setFont(fontname, 10)
c.drawString(100, 700, u"1ページ")
#1ページ目を確定
c.showPage()

#2ページ目開始
c.setFont(fontname, 10)
c.drawString(100, 700, u"2ページ")
#2ページ目を確定
c.showPage()

#pdfファイル生成
c.save()

print "ok." 

2ページ目を開始する時に

#2ページ目開始
c.setFont(fontname, 10)

としてフォントを再指定しているが、これで実行されてないと
そのページだけ文字化けを起こす
showPageを実行した後は、フォントを再指定する必要がある事が判明

次回は、日本語を含むpdfファイルを生成する

ワクチン接種3回目経過観察その1

寝る直前25日のAM1時頃くらいから体のだるさを感じる

翌26日の5時くらいに目が覚めて接種した幹部が痛み出す
14時に37度3分を観測 微熱でだるい

前回の接種では接種してから2時間後くらいから体のだるさを感じていたので

今回は、1日遅れで症状が出ているみたい


また何かあればブログにすると思う

16時ころ体がすげー熱いと思って体温測定すると
38度3分だった 久々に辛い 
関節痛もする

17時に測定38度6分