前提・実現したいこと
Raspberry Pi Zero ZHに接続したセンサで温度・湿度データを取得し、
Google Cloud Platformの BigQueryにアップロードをしたいと考えています。
その前段の、Raspberry PiとBigQueryの接続確認として、
固定値をBigQueryに送信するプログラムを作成し実行しました。
*下記のサイトを参考に、BigQueryライブラリのインストールやサービスアカウント作成、認証キーのパス追加等は実施しています。
https://blog.interstellar.co.jp/2019/07/raspberry-pibigquerydataportal/
発生している問題・エラーメッセージ
コマンドプロンプトで実行すると下記のメッセージが出力されました。
Illegal instruction
該当のソースコード
Python
1from google.cloud import bigquery 2from pytz import timezone 3 4def bq_insert(): 5 temp = 10 6 humidity = 20 7 8 client = bigquery.Client() 9 dataset_id = '***' 10 table_id = '*****' 11 table_ref = client.dataset(dataset_id).table(table_id) 12 table = client.get_table(table_ref) 13 timestamp = timezone('Asia/Tokyo').localize(datetime.datetime.now()) 14 rows = [{'timestamp': timestamp.isoformat(), 15 'temperature': temp, 16 'humidity': humidity}] 17 print(rows) 18 errors = client.insert_rows_json(table, rows) 19 print(errors) 20 21 assert errors == [] 22 23if __name__ == '__main__': 24 bq_insert(1)
試したこと
同じプログラムをRaspberry pi 3 Model B+で動かした際には正常に動作しました。
SDカードをSD Card Copierで丸ごとコピーしてRaspi Zeroで動かしたところ上記のプログラムのみIllegal instructionとなり、
試しにSDカードをゼロからRaspi Zero用にセットアップしても同様の結果でした。
Raspi 3とRaspi zeroでARMアーキテクチャのバージョンが違うことに起因するエラー事象はネット上に情報があり、これも同様の原因かと予想していますが、
BigQueryに関してはそのような情報も見かけず、対処法がわかりません。
補足情報(FW/ツールのバージョンなど)
$ pip3 install google-cloud-bigquery
を実施した際に下記のメッセージが出力されており、関係ありそうな気はしています。
google-api-core 1.26.3 has requirement six>=1.13.0, but you'll have six 1.12.0 which is incompatible. Installing collected packages: pyparsing, packaging, protobuf, proto-plus, pytz, googleapis-common-protos, pyasn1, pyasn1-modules, cachetools, rsa, go$
またバージョン情報は下記の通りです。
google-api-core==1.26.3 google-auth==1.30.0 google-cloud-bigquery==2.15.0 google-cloud-core==1.6.0 google-crc32c==1.1.2 google-resumable-media==1.2.0 googleapis-common-protos==1.53.0
あなたの回答
tips
プレビュー