質問するログイン新規登録

Q&A

解決済

4回答

21929閲覧

import serialがうまくいきません

hiiiro

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/08/15 06:51

0

0

初心者です。
Arduino・pythonを使って熱電対で温度を取得するプログラミングを作成、そのデータをエクセルデータ?に保存するプログラミングを組んでいます。

発生している問題・エラーメッセージ

'
このようなエラーが出ています。pip install pyserialでインストールしているのですが、原因が分かりません。

エラーメッセージ File "C:\Users\sawad\python\thermocouple\thermocouple.py", line 5, in <module> import serial ModuleNotFoundError: No module named 'serial ### 該当のソースコード python ソースコード

import datetime
import csv
import time
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.timeout = 0.5
ser.port = "COM5"

today = datetime.datetime.today()

with open("thermocouple.csv",mode="a",encoding="utf-8")as f:
writer = csv.writer(f)
writer.writerows("時","分","秒","温度")

duration = int(input("計測時間を入力してください")) start = time.time() end = start + duration while time.time() <= end: writer.writerows(date.hour,date.minute,date.second,ser) time.sleep(0.5)

f.close()

試したこと

pip listで調べた結果、serialが入っていたので削除しました。

補足情報(FW/ツールのバージョンなど)

詳しい方よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答4件

0

単純なことですが、サンプルプログラムの名前を serial.py などとしてプロジェクトフォルダに保存しているとサンプルプログラムがインポートされてしまいます。

投稿2024/05/01 02:59

test_cat

総合スコア2

0

ベストアンサー

pythonで

python

1import serial

がうまくいかない状態で、下記のpythonコードを実行してみてください

python

1import sys 2import pprint 3pprint.pprint(sys.path)

そうすると、たくさんパスが表示されますが、その中に

c:\users\sawad\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages

が入ってるか確認してください
入ってないとimportできません

入ってない場合は、おそらく「pyserial」をインストールしたときのpipに紐付いてるPythonと、コード実行に使ってるPythonが別のものです
その場合は、使いたいPythonに紐付いてるpipを使ってインストールする必要があります
Path等の設定を見直してください

投稿2021/08/16 07:11

編集2021/08/16 07:13
jbpb0

総合スコア7658

0

ありがちなのは、pipでモジュールを追加したpythonとスクリプトを実行しているpythonが別のものだった、なんていうパターンですが。

pip listで調べた結果、serialが入っていたので削除しました。

pyserialは入っていたのですか?

pipはどのように調べて、質問のスクリプトはどのように実行したのですか?

投稿2021/08/15 07:11

thkana

総合スコア7821

hiiiro

2021/08/15 07:28

回答ありがとうございます。 pyserialは入っています。スクリプトはcmdで実行しています。 pythonのファイルは\Users\sawad\python\thermocouple\thermocouple.py pipはpip show pyserialで調べて結果 \users\sawad\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages と出てきました。 こんな回答であっているでしょうか?よろしくお願いします。
nobonobo

2021/08/15 07:49

`python -m pip list`の表示結果に`pyserial 3.5`がありますか?
hiiiro

2021/08/15 07:58

C:\Users\sawad\python\thermocouple>pip list Package Version -------------- --------- certifi 2020.12.5 chardet 4.0.0 DateTime 4.3 et-xmlfile 1.1.0 future 0.18.2 idna 2.10 iso8601 0.1.16 openpyxl 3.0.7 pathlib 1.0.1 pip 21.0.1 pyserial 3.5 pytz 2021.1 PyYAML 5.4.1 urllib3 1.26.3 zope.interface 5.4.0 このように出てきました
jbpb0

2021/08/15 08:02

質問者さん pythonで import serial がうまくいかない状態で、下記のpythonコードを実行してみてください import sys import pprint pprint.pprint(sys.path) そうすると、たくさんパスが表示されますが、その中に \users\sawad\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages が入ってますでしょうか? 入ってないとimportできません
thkana

2021/08/15 08:04

pipコマンドを使うと、pip.exeとしてコマンドにまとめられたものが起動してイロイロとあるので、 pip list ではなく、 python -m pip list としてpythonの中からpipを起動してみたらどうなる? という話です。
hiiiro

2021/08/15 08:05

すいません。やってみました。 C:\Users\sawad\python\thermocouple>python -m pip list Package Version -------------- --------- certifi 2020.12.5 chardet 4.0.0 DateTime 4.3 et-xmlfile 1.1.0 future 0.18.2 idna 2.10 iso8601 0.1.16 openpyxl 3.0.7 pathlib 1.0.1 pip 21.0.1 pyserial 3.5 pytz 2021.1 PyYAML 5.4.1 urllib3 1.26.3 zope.interface 5.4.0
jbpb0

2021/08/15 09:12

私が「2021/08/15 17:02」のコメントに書いた、「sys.path」の確認をお願いできませんでしょうか?
thkana

2021/08/15 09:34

jbpb0さん なんでしたらご自分で回答書いてそこでやりとりしてはいかがでしょう。
guest

0

pipでインストールしたPythonと、thermocouple.pyを動かしているPythonが違っている可能性があります。

thermocouple.pyを起動するとき、

$ python thermocouple.py

を実行しているなら、同じ環境で

$ python -m pip install pyserial

でインストールしてみてください。

別の方法で起動しているなら、起動方法を質問に追加してください。

投稿2021/08/15 07:07

ppaul

総合スコア24676

hiiiro

2021/08/15 07:31

回答ありがとうございます。 pyserialはpip install pyserialで既にインストール済みです。
jbpb0

2021/08/15 07:56

質問者さん > pip install pyserialで既にインストール済み だと、違うPythonの中にインストールされてるかもしれないので、今使ってるPythonの中に確実にインストールできるように、 > python -m pip install pyserial をやってみてくれ、という意味です
hiiiro

2021/08/15 08:01

python -m pip install pyserialをやりました。 C:\Users\sawad\python\thermocouple>python -m pip install pyserial Requirement already satisfied: pyserial in c:\users\sawad\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (3.5) 結果変わらすでした。 C:\Users\sawad\python\thermocouple>thermocouple.py Traceback (most recent call last): File "C:\Users\sawad\python\thermocouple\thermocouple.py", line 5, in <module> import serial ModuleNotFoundError: No module named 'serial'
ppaul

2021/08/15 13:00

C:\Users\sawad\python\thermocouple>thermocouple.py ではなく C:\Users\sawad\python\thermocouple>python thermocouple.py で実行してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問