Permission denied (publickey).の解決

snowpool@192.168.1.69: Permission denied (publickey).の解決

GithubへSSHでキーを登録するため

ssh-keygen -t ed25519 -C “メールアドレス”

でパスフレーズ付きで作成

前回ubuntu22.04 でキーを作成した時のログは

ssh-keygen -t ed25519 -C ""

多分キーを上書きしている

仕方ないので

ssh-keygen -t ed25519 -C "" -f ~/.ssh/ubuntu22


ファイル名を変えて再度鍵を生成する
これで

-t ed25519: キーペアのタイプをEd25519に指定します。

-C “”: キーペアに空のコメントを付加します。

-f ~/.ssh/ubuntu22: キーペアのファイル名と保存場所を指定します。
このオプションで、秘密キーが~/.ssh/ubuntu22に、
対応する公開キーが~/.ssh/ubuntu22.pubにそれぞれ保存されます。

となったので
次にubuntu22.04 へログインして一度SSHをパスワード接続できるようにする

しかし結果が変わらない
Mac側の設定を変更する

 vim .ssh/known_hosts    


Ubuntu22.04のIPアドレスを検索し削除

再度接続しようとしたが
失敗のためよく見たら
ssh_configを設定していた…
正解は sshd_config

これを編集しパスワード認証したら入れたので

ssh-copy-id -i ~/.ssh/ubuntu22.pub snowpool@192.168.1.69

あとは

 chmod 600 .ssh/ubuntu22    

で権限を変更

sudo vim /etc/ssh/sshd_config

で設定ファイルを開き
パスワード認証を許可しないようにして

sudo systemctl restart sshd.servic

でSSHD再起動

ssh -i .ssh/ubuntu22 snowpool@192.168.1.69  

というように鍵を指定してSSHで接続することで
無事に解決

Ubuntu22.04 で ラズパイゼロWからのダイレクト TCP ストリーミングでの配信されている画像を OpenCV で再生 その2

Ubuntu22.04 で ラズパイゼロWからのダイレクト TCP ストリーミングでの配信されている画像を OpenCV で再生 その2

今回は今後に必要なパッケージ関連のインストール

https://pytorch.org/get-started/locally/

PyTorch Build Stable
Your OS Linux
Package pip
Language Python
Compute Platform CPU
を選択すると

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

が表示されるので
これを sudo をつけて実行する

sudo pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

これでインストール後に

python3 -c "import torch; print( torch.__version__ )"

2.0.1+cpu

というようにバージョンがでれば成功

次に機械学習フレームワークのChainerインストールを入れようとしたけど
GPUないので断念

次にpythonパッケージ関連

sudo apt -y update
sudo apt -y install libgeographic-dev gdal-bin gdal-data libgdal-dev

sudo apt -y install python3-numpy python3-scipy python3-h5py python3-sklearn python3-skimage python3-seaborn python3-pandas python3-pil cython3 python3-pytest python3-yaml cython3 python3-statsmodels python3-plotly python3-sympy python3-csvkit python3-docopt python3-pyproj python3-flake8 python3-protobuf python3-bs4 python3-html5lib python3-rope python3-wrapt python3-cffi python3-wheel python3-six python3-sphinx python3-bottleneck python3-pygments python3-numexpr python3-xlrd python3-xlwt python3-lxml python3-graphviz python3-pydot python3-flask python3-django python3-redis python3-pylint-common python3-bz2file python3-opengl  python3-msgpack python3-mecab python3-matplotlib-venn python3-pygame python3-bottle python3-rtree python3-shapely python3-fiona python3-gdal python3-geopandas python3-geopy python3-geographiclib python3-requests

を実行したが

E: パッケージ python3-bz2file が見つかりません

となる

なので

sudo apt -y install python3-numpy python3-scipy python3-h5py python3-sklearn python3-skimage python3-seaborn python3-pandas python3-pil cython3 python3-pytest python3-yaml cython3 python3-statsmodels python3-plotly python3-sympy python3-csvkit python3-docopt python3-pyproj python3-flake8 python3-protobuf python3-bs4 python3-html5lib python3-rope python3-wrapt python3-cffi python3-wheel python3-six python3-sphinx python3-bottleneck python3-pygments python3-numexpr python3-xlrd python3-xlwt python3-lxml python3-graphviz python3-pydot python3-flask python3-django python3-redis python3-pylint-common python3-opengl  python3-msgpack python3-mecab python3-matplotlib-venn python3-pygame python3-bottle python3-rtree python3-shapely python3-fiona python3-gdal python3-geopandas python3-geopy python3-geographiclib python3-requests

で実行

その後

sudo pip3 install -U pandasql pyyaml bokeh pymc3 mkl mkl-include holoviews pandas-bokeh ggplot prettyplotlib pybrain3 firebase-admin googletrans google-cloud-vision gpyocr azure-cognitiveservices-vision-computervision gensim gloo scikit-video scikits.datasmooth scikits.example scikits.fitting scikits.optimization scikits.vectorplot zodb gdata pyr2 pycaret

を実行するが

Collecting gpyocr
  Downloading gpyocr-1.6.tar.gz (10 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [10 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-n3wh9blx/gpyocr_6b1e72dbc11046ffb50fbda9785e8f40/setup.py", line 3, in <module>
          from gpyocr import __version__
        File "/tmp/pip-install-n3wh9blx/gpyocr_6b1e72dbc11046ffb50fbda9785e8f40/gpyocr/__init__.py", line 9, in <module>
          from ._gpyocr import (
        File "/tmp/pip-install-n3wh9blx/gpyocr_6b1e72dbc11046ffb50fbda9785e8f40/gpyocr/_gpyocr.py", line 24, in <module>
          from google.cloud import vision
      ImportError: cannot import name 'vision' from 'google.cloud' (unknown location)
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

となる

とりあえず他のものをインストール

sudo pip3 install git+https://github.com/jrosebr1/imutils.git
python3 -c "import imutils; print(imutils.__version__)"

でバージョン確認

0.5.4
sudo pip3 install git+https://github.com/DinoTools/python-overpy.git
python3 -c "import overpy; print(overpy.__version__)"

でバージョン確認

0.6
sudo pip3 install git+https://github.com/ianare/exif-py.git
python3 -c "import exifread; print(exifread.__version__)"

でバージョン確認

3.1.0
sudo pip3 install git+https://github.com/mapado/haversine.git
sudo pip3 install git+https://github.com/Turbo87/utm.git

次に
folium, pyproj, rtree, shapely, GDAL, fiona, geopandas のインストール

sudo apt -y update
cd /usr/local
sudo rm -rf geopandas
sudo git clone https://github.com/geopandas/geopandas
cd geopandas
sudo python3 setup.py build
sudo python3 setup.py build

を実行すると

Failed to load config from /usr/local/geopandas/pyproject.toml: 'versioneer'
Try to load it from setup.cfg
running build

となる

それでも

sudo python3 setup.py install

を実行すると

Failed to load config from /usr/local/geopandas/pyproject.toml: 'versioneer'
Try to load it from setup.cfg
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/usr/lib/python3/dist-packages/setuptools/command/easy_install.py:158: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running bdist_egg
running egg_info
creating geopandas.egg-info
writing geopandas.egg-info/PKG-INFO
writing dependency_links to geopandas.egg-info/dependency_links.txt
writing top-level names to geopandas.egg-info/top_level.txt
writing manifest file 'geopandas.egg-info/SOURCES.txt'
reading manifest file 'geopandas.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE.txt'
writing manifest file 'geopandas.egg-info/SOURCES.txt'
Failed to load config from /usr/local/geopandas/pyproject.toml: 'versioneer'
Try to load it from setup.cfg
installing library code to build/bdist.linux-x86_64/egg
running install_lib
warning: install_lib: 'build/lib' does not exist -- no Python modules to install

creating build
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying geopandas.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying geopandas.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying geopandas.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying geopandas.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/geopandas-0.14.0+1.g91d1889-py3.10.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing geopandas-0.14.0+1.g91d1889-py3.10.egg
Copying geopandas-0.14.0+1.g91d1889-py3.10.egg to /usr/local/lib/python3.10/dist-packages
Adding geopandas 0.14.0+1.g91d1889 to easy-install.pth file

Installed /usr/local/lib/python3.10/dist-packages/geopandas-0.14.0+1.g91d1889-py3.10.egg
Processing dependencies for geopandas==0.14.0+1.g91d1889
Finished processing dependencies for geopandas==0.14.0+1.g91d1889

となるのでインストールできているっぽい

sudo pip3 install -q git+https://github.com/python-visualization/folium.git

次にpyenv のインストール
既にインストール済み

念の為ライブラリ関連も入れておく予定だったが
インストール済みだった

udo apt -y install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Ubuntu22.04 で ラズパイゼロWからのダイレクト TCP ストリーミングでの配信されている画像を OpenCV で再生 その1

Ubuntu22.04 で
ラズパイゼロWからのダイレクト TCP ストリーミングでの配信されている画像を
OpenCV
で再生する

VOICEVOX REST-APIを使えるようにする

とりあえずOpenCV から入れる

https://monobook.org/wiki/Ubuntu_22.04_LTSにVoiceVoxをインストールする
でvoiceboxを入れる

sudo apt install fuse libfuse2

を入れておく

https://voicevox.hiroshiba.jp
から
OS Linux
対応モード CPU
インストーラタイプをダウンロード

cd Downloads
scp VOICEVOX-CPU.Installer.0.14.7.Linux.sh snowpool@192.168.1.69:/home/snowpool/

でM1MacbookAir からscp で転送する

bash VOICEVOX-CPU.Installer.0.14.7.Linux.sh 

を実行したが

* curl コマンドが見つかりません。

以下のコマンドを実行してください。

Ubuntu/Debian:
    sudo apt install curl

CentOS/Fedora:
    sudo dnf install curl
もしくは
    sudo yum install curl

となるので

sudo apt install curl

の後に実行したら

+-+-+-+-+-+-+-+-+
|V|O|I|C|E|V|O|X|
+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |I|n|s|t|a|l|l|e|r|
+-+-+-+-+-+-+-+-+-+-+-+-+-+
|f|o|r| |L|i|n|u|x|
+-+-+-+-+-+-+-+-+-+
[+] Checking installer prerequisites...
[!] Command '7z', '7zr' or '7za' not found

Required to extract compressed files

Ubuntu/Debian:
    sudo apt install p7zip

CentOS (Enable EPEL repository):
    sudo dnf install epel-release && sudo dnf install p7zip
Or
    sudo yum install epel-release && sudo yum install p7zip

Fedora:
    sudo dnf install p7zip
Or
    sudo yum install p7zip

Arch Linux:
    sudo pacman -S p7zip

MacOS:
    brew install p7zip

となるので

sudo apt install p7zip

の後に

bash VOICEVOX-CPU.Installer.0.14.7.Linux.sh 

でインストール成功

起動は

~/.voicevox/VOICEVOX.AppImage

だと

configMigration014: /home/snowpool/.config/voicevox-cpu/config.json not exists, do nothing
[26521:0923/052732.856278:ERROR:ozone_platform_x11.cc(247)] Missing X server or $DISPLAY
[26521:0923/052732.856458:ERROR:env.cc(226)] The platform failed to initialize.  Exiting.
Segmentation fault (コアダンプ)

となってしまう

普通にubuntu へログインし
GUIから起動すれば問題なく動くが

https://qiita.com/uezo/items/7e476147ec6312ad8a2c

.runで実行
M1Macでも動作したので
同様にubuntu でもできると思ったがコマンドが見つからない

https://ponkichi.blog/voicevox-python-curl#st-toc-h-7
を参考に

とりあえず

sudo find / -name ".run"

を実行したが

[sudo] snowpool のパスワード: 
find: ‘/run/user/1000/doc’: 許可がありません
find: ‘/run/user/1000/gvfs’: 許可がありません
find: ‘/run/user/127/doc’: 許可がありません
find: ‘/run/user/127/gvfs’: 許可がありません

となる

なおFWは関係なかった
https://server-network-note.net/2022/07/ubuntu-server-22-04-lts-firewall-ufw/
を参考にsudo ufw status で確認したが
無効になっていた

とりあえず保留してopencvを先に進める

https://www.kkaneko.jp/tools/ubuntu/ubuntu_opencv.html#S1
を参考に

まず cmakeのインストール

sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
sudo apt -y install qt5-qmake
sudo apt -y install git cmake cmake-curses-gui cmake-gui curl
sudo apt -y install zlib1g-dev libcurl4-gnutls-dev

cd /tmp
git clone https://github.com/Kitware/CMake.git
cd CMake/
./configure --system-curl --system-zlib
Make
Sudo make install

次にpython3 関連

sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

次に
OpenCV, opencv_contrib のインストール

sudo mkdir -p /usr/local/opencv
sudo chown -R $USER /usr/local/opencv
cd /usr/local/opencv
curl -O https://github.com/opencv/opencv/archive/4.x.zip
cp 4.x.zip opencv.zip
curl -O https://github.com/opencv/opencv_contrib/archive/4.x.zip
cp 4.x.zip opencv_contrib.zip

unzip opencv.zip 
Archive:  opencv.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of opencv.zip or
        opencv.zip.zip, and cannot find opencv.zip.ZIP, period.

となるので

https://www.kkaneko.jp/tools/ubuntu/ubuntu_opencv_buildout.html

https://toolatescrap.hatenablog.com/entry/2022/11/29/003848
を参考に
https://opencv.org/releases/
からmacでダウンロードしたが展開される

https://github.com/opencv/opencv/tree/4.7.0
からzipダウンロードしたが同じ
どうやらMacでzipダウンロードすると展開されるらしい

sudo apt install libgtk2.0-dev

で先にインストールしておく

https://www.kkaneko.jp/tools/ubuntu/ubuntu_opencv_buildout.html#S2
を参考に
Ceres Solver のインストール

sudo apt -y install  libceres-dev libceres2

次にpython3関連

https://www.kkaneko.jp/tools/man/python.html#systempython
によれば

Ubuntu では,システム Python は,Ubuntu システムの動作に関わっている. システム Python をバージョンアップしたり,アンインストールを行ったりするのは良くない

と言うことなので
Pyenvを使うようにする

sudo apt -y install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
cd /tmp
curl https://pyenv.run | bash
echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bashrc
echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.bashrc
echo '    export PATH=${PYENV_ROOT}/bin:$PATH' >> ~/.bashrc
echo '    eval "$(pyenv init -)"' >> ~/.bashrc
echo '    eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
exec $SHELL -l

他の必要なものもインストールするので
https://www.kkaneko.jp/tools/ubuntu/ubuntu.html#Se
を参考に

sudo apt -y install git cmake cmake-curses-gui cmake-gui curl wget p7zip-full

次にpython関連

python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

sudo pip3 uninstall ptyprocess sniffio terminado tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder

を実行したら

do tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
Found existing installation: ptyprocess 0.7.0
Not uninstalling ptyprocess at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'ptyprocess'. No files were found to uninstall.
WARNING: Skipping sniffio as it is not installed.
WARNING: Skipping terminado as it is not installed.
WARNING: Skipping tornado as it is not installed.
WARNING: Skipping jupyterlab as it is not installed.
WARNING: Skipping jupyter as it is not installed.
WARNING: Skipping jupyter-console as it is not installed.
WARNING: Skipping jupytext as it is not installed.
WARNING: Skipping nteract_on_jupyter as it is not installed.
WARNING: Skipping spyder as it is not installed.
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

となった

おそらく競合しないため念のためアンインストールしてるっぽい

sudo apt -y install jupyter jupyter-qtconsole spyder3
sudo apt -y install python3-ptyprocess python3-sniffio python3-terminado python3-tornado
sudo pip3 install -U jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter

これで
JupyterLab, spyder, nteract
をインストール

sudo apt -y install python3-numpy python3-sklearn


numpy, scikit-learn のインストール

次に
TensorFlow 2.11,Keras,MatplotLib, Python 用 opencv-python のインストール

トラブルの可能性を減らすため
アンインストールをしておく

sudo apt -y remove python3-keras
sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer

クリーンインストール状態なので

WARNING: Skipping tensorflow as it is not installed.
WARNING: Skipping tensorflow-cpu as it is not installed.
WARNING: Skipping tensorflow-gpu as it is not installed.
WARNING: Skipping tensorflow-intel as it is not installed.
WARNING: Skipping tensorflow-text as it is not installed.
WARNING: Skipping tensorflow-estimator as it is not installed.
WARNING: Skipping tf-models-official as it is not installed.
WARNING: Skipping tf_slim as it is not installed.
WARNING: Skipping tensorflow_datasets as it is not installed.
WARNING: Skipping tensorflow-hub as it is not installed.
WARNING: Skipping keras as it is not installed.
WARNING: Skipping keras-tuner as it is not installed.
WARNING: Skipping keras-visualizer as it is not installed.
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

となった

TensorFlow の前提パッケージのインストール

sudo pip3 uninstall -y six wheel astunparse tensorflow-estimator numpy keras-preprocessing absl-py wrapt gast flatbuffers grpcio opt-einsum protobuf termcolor typing-extensions google-pasta h5py tensorboard-plugin-wit markdown werkzeug requests-oauthlib rsa cachetools google-auth google-auth-oauthlib tensorboard tensorflow
sudo apt -y install python3-six python3-wheel python3-numpy python3-grpcio python3-protobuf python3-termcolor python3-typing-extensions python3-h5py python3-markdown python3-werkzeug python3-requests-oauthlib python3-rsa python3-cachetools python3-google-auth

次に
TensorFlow, numpy, pillow, pydot, matplotlib, keras, opencv-python のインストール

sudo apt -y update
sudo apt -y install python3-numpy python3-pil python3-pydot python3-matplotlib
sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv libopencv-contrib-dev opencv-data
sudo pip3 install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
sudo pip3 install git+https://github.com/tensorflow/docs
sudo pip3 install git+https://github.com/tensorflow/examples.git
sudo pip3 install git+https://www.github.com/keras-team/keras-contrib.git

インストール完了後

python3 -c "import tensorflow as tf; print( tf.__version__ )"

でバージョン確認

2023-09-26 06:14:43.998359: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2023-09-26 06:14:44.053113: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2023-09-26 06:14:45.376154: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
2.13.0

となった

とりあえずここまで
次にPyTorch などをインストールする

Fibit の web API

Fibit の web API

Fibit Inspire3 を購入しAPIで情報を取得してみたかったので
その時のメモ

FitbitのWeb APIを実行する方法
https://www.zenryoku-kun.com/post/fitbit-api
を参考に

Web APIを利用するアプリを登録
https://dev.fitbit.com/login
から行う

Register new app
をクリック

Redirect URL以外のURL項目はhttp://localhostでOK

Application Name: アプリ名
今回はtest

Description: 10文字以上でアプリの説明
ヘルスケア関連のデータを取得して表示したい
とした

Organization *
はサイトを参考に無職とした

OAuth2.0 Application Type: 個人データを取得するのでPersonal

Redirect URL: 初回のアクセス・トークンはここに送られる
http://localhost:8000にしておく

Default Access Type:
APIでデータの書込みをしたい場合はRead & Writeを選択
Read Onlyなら読み込みのみ

これで
I have read and agree to the terms of serviceをチェックしてピンクのRegisterボタンを押す

これで登録ができた

この時に

OAuth 2.0 Client ID

Client Secret

Redirect URL
http://localhost:8000
OAuth 2.0: Authorization URI
https://www.fitbit.com/oauth2/authorize
OAuth 2.0: Access/Refresh Token Request URI
https://api.fitbit.com/oauth2/token

というように
Client ID
Client Secret
が表示される

OAuth 2.0 Tutorial
をクリックすると
アクセストークンなどの発行ができる

チュートリアルの画面では
ClientIDはそのままセットされているので
タイプを
サーバーか Client を選ぶ

エンドポイントにより認証方法が異なる

今回はclient を選択

Access Token 発行のため

PKCE Code Verifier
State

 GENERATE
をクリック

Display Authorization Page

取得を認めない情報があればチェックを外しておく

とりあえず全て取得してみるのでこれはそのままにしておく

下に認証ページへのリンクが出るのでクリック

HTTPSでない警告が出てるけど
許可をクリック

サーバーに接続できません
と表示されるけど
ブラウザのURLをコピペ

これを
Handle the Redirect
へコピペすると
Authorization Code
などが表示される

次に
Get Tokens

SUBMIT REQUEST
をクリック

これで
Response
の部分に
JSONでAccess Token が表示される

Refresh Token
も発行されているのでメモしておく

なお
Refresh Token を実行すると
Access Token
Resresh Token も両方更新されるので注意

また
Access Token は
八時間で執行するため
Refresh token で再取得する処理が必要

Githubへの公開とライセンス関連を調べた

Githubへの公開とライセンス関連を調べた

https://github.com/Snowpooll/face_weather
が今回作成したもの

顔を認識するとVOICEVOXで今日の天気を教えてくれる

コンセプトは操作しないこと
アレクサでもいいけど
声が出せないと使えないし

以下は作業ログ

リポジトリ名を
face_weather

publicで公開

Add a README file

readmeを追加

ライセンスはMITライセンスを選択

これでリポジトリを作成すれば
ライセンスの英文は自動で作成してくれる

Readmeを編集してから

git clone https://github.com/Snowpooll/face_weather.git


ローカル環境にリポジトリをクローン

この中にプログラムをコピーしていくが

__pycache__

があった

これは
ChatGPTによれば
__pycache__ は、
Pythonがソースコードをコンパイルした後のバイトコードを格納するディレクトリ

バージョン管理システム(例:Git)を使用している場合は、
通常、__pycache__ ディレクトリを
無視リストに追加することが一般的

なので

 vim .gitignore

でファイルを作成

__pycache__/

として保存

git add .gitignore

で追加

git commit -m "Add __pycache__ to .gitignore"

を実行したら

Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'snowpool@snowpool-Prime-Series.(none)')

となった

そういえば再インストールした時に設定を忘れていたので
git config –global user.name “Githubユーザ名”
git config –global user.email “メールアドレス”


再度

git commit -m "Add __pycache__ to .gitignore"

を実行

あと

query.json
test_audio.wav
weather.txt

も無視リストに加えるので

vim .gitignore

でファイルを開き
追記

git add .gitignore
git commit -m "Update .gitignore to include specific files"

で追加

次に
requirements.txt
の作成

これでライブラリ関連のインストールが簡単になる

requests
deepl
pygame
opencv-python
configparser

というようにライブラリを書いておけばOK

git push origin main

でエラー。

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Snowpooll/face_weather.git/'

調べたら
GitHubでパスワード認証が廃止されたため、HTTPSを使ってリモートリポジトリにアクセスする際にはパーソナルアクセストークン(PAT)を使用するか、SSHキー認証を使用する必要があるらしい

とりあえずPATを使うことにする

GitHubでPATを生成する:
* GitHubにログインし、右上のアカウントアイコンから「Settings」を選択します。
* 左側のサイドバーから「Developer settings」を選択し、「Personal access tokens」に移動します。
* 「Generate new token」をクリックし、必要な権限を選択してトークンを生成します。生成されたトークンは安全な場所にコピー

で作成しようとしたら
New personal access token (classic)
の設定でつまづくので検索

https://dev.classmethod.jp/articles/github-personal-access-tokens/
によれば

Noteにはトークンの使用用途
code maintenanceとした

Expirationにはトークンの有効期限
デフォルトは30だが短いので90にする

Select scopesではトークンが利用可能なGitHub権限を設定
git cloneやgit pullをしたい場合は、repoにチェック

これで
Generate token
をクリックすれば
トークンが表示される

これで再度

git push origin main

実行したら

 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://github.com/Snowpooll/face_weather.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

となる

原因は
リモートリポジトリにあなたのローカルリポジトリにはない変更が含まれているために発生

思い当たることとして
READMEを
Githubで編集した後に

git pull origin main

していなかったこと

他の変更はなかったため

git push origin main --force

で強制プッシュ

とりあえずはこれで公開できた

ちなみに後で聞いたのだが
–force は、remoteのものを完全に上書きするので、使わないほうがベター
必要なcommitが消える可能性があるらしい

認証も、SSHキーを使うのがベター
とのこと