質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2499閲覧

Python 仮想環境 ライブラリ 読み込めない

Y3K

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/10/19 18:37

編集2022/10/20 04:41

前提

Raspberry Pi 4B
Raspberry Pi OS Lite 32bit
Python 3.9.2

実現したいこと

Pythonで開発を行っています。
venvで仮想環境を作りライブラリをインストールしました。
ですがプログラムを動かすとライブラリを読み込めていないようです。

ディレクトリ
/home/yokoyama/AudioSpectrum
├─ venv
├─ led.py
└─ path.py

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

(venv) yokoyama@rasp4b:~/AudioSpectrum $ sudo python led.py Traceback (most recent call last): File "/home/yokoyama/AudioSpectrum/led.py", line 2, in <module> import board ModuleNotFoundError: No module named 'board'

該当のソースコード

led.py

1# coding: UTF-8 2import board 3import neopixel 4 5# ライブラリインストールコマンド 6#pip3 list #ライブラリ一覧 7#pip3 install board #GPIO制御 8#pip3 install adafruit-circuitpython-neopixel #LED制御 9 10 11 12disp_w = 8 13disp_h = 8 14pixels = neopixel.NeoPixel(board.D18, disp_w*disp_h) 15pixels.fill((100,0,0)) 16pixels.show()

path.py

1# coding: UTF-8 2import sys 3print(sys.executable)

試したこと

1.仮想環境作成
yokoyama@rasp4b:~/AudioSpectrum $ python3 -m venv venv

2.仮想環境を有効化
yokoyama@rasp4b:~/AudioSpectrum $ source venv/bin/activate
Requirement already satisfied: board in ./venv/lib/python3.9/site-packages (1.0)

3.Pythonのバージョン確認
(venv) yokoyama@rasp4b:~/AudioSpectrum $ python -V
Python 3.9.2

4.ライブラリインストール
(venv) yokoyama@rasp4b:~/AudioSpectrum $ pip3 install board
...略
Successfully installed board-1.0

5.ライブラリインストール
(venv) yokoyama@rasp4b:~/AudioSpectrum $ pip3 install adafruit-circuitpython-neopixel
...略
Successfully installed adafruit-circuitpython-neopixel-6.3.6

6.実行
(venv) yokoyama@rasp4b:~/AudioSpectrum $ sudo python led.py
Traceback (most recent call last):
File "/home/yokoyama/AudioSpectrum/led.py", line 2, in <module>
import board
ModuleNotFoundError: No module named 'board'

7.Pathの確認
(venv) yokoyama@rasp4b:~/AudioSpectrum $ python path.py
/home/yokoyama/AudioSpectrum/venv/bin/python

8.ライブラリアンインストール
(venv) yokoyama@rasp4b:~/AudioSpectrum $ pip3 uninstall board
...略
Successfully uninstalled board-1.0

9.ライブラリインストール
(venv) yokoyama@rasp4b:~/AudioSpectrum $ /home/yokoyama/AudioSpectrum/venv/bin/python -m pip install board
...略
Successfully installed board-1.0

10.実行
(venv) yokoyama@rasp4b:~/AudioSpectrum $ sudo python led.py
Traceback (most recent call last):
File "/home/yokoyama/AudioSpectrum/led.py", line 2, in <module>
import board
ModuleNotFoundError: No module named 'board'

現在はここで止まっています。
お力添えお願い致します。

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/10/19 23:01 編集

> ImportError: No module named board となる状態で下記を実行して、使ってるpythonの絶対パスを調べてください import sys print(sys.executable) それは、venvで作った仮想環境の場所と合ってますでしょうか? 合ってるなら、上記で調べた絶対パスが、たとえば /aaa/bbb/python だとしたら、ターミナルで(pythonが起動してない状態で)その仮想環境を有効にして下記を実行したら、インポートできるようになると思います (実行する際は、調べた実際のpythonのパスに置き換えてください) /aaa/bbb/python -m pip install board
quickquip

2022/10/19 23:42 編集

> envで仮想環境を作りライブラリをインストールしました。 > ですがプログラムを動かすと ここを言葉で説明されても困ります。 動かしたコマンド(と可能なら結果)を具体的に書いてください (この欄に書かれると読みにくいので質問を修正してください)
Y3K

2022/10/20 04:49

jbpb0様、ご回答ありがとうございます。 コメント通り実行してみましたが症状は変わりませんでした。 もし間違っているようであればお教えください。 quickquip様、ご助言ありがとうございます。 コマンドと結果を追記いたしましたのでご助言いただければ幸いです。
quickquip

2022/10/20 05:13 編集

仮想環境の使い方に問題はないと思います。 https://pypi.org/project/board/ はゲームの盤面のためのライブラリみたいです。 いったいどこから import board というコードが出てきたのでしょうか? arduino用のコードあたりを見てたりしませんか?
quickquip

2022/10/20 05:52 編集

すなおにそのページに書いてあるとおりにやればよいのではないでしょうか [上記は取り消します] adafruit-circuitpython-neopixel だけでboardが入らないというのが解決したい問題なのですか (たぶん?)
guest

回答1

0

ベストアンサー

sudo python led.py

したら仮想環境のpythonは使われず、ルートユーザの環境に沿ってシステムの/usr/bin/pythonが起動します。

仮想環境のpythonを使うならsudoを付けないでpython led.pyと実行します。
やりたいことにルート権限が不要ならそれで動くでしょう。

やりたいことにルート権限が必要なら、仮想環境を作らずルート権限でシステムのPythonにインストールするのが手っ取り早いと思います。
(つまり https://learn.adafruit.com/adafruit-neopixel-uberguide/python-circuitpython の通りにした方がいいといことです)

投稿2022/10/20 06:21

quickquip

総合スコア11299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y3K

2022/10/20 14:17

boardをインストールしなければ行けないと思い込んでしまいました。 sudoを使うと仮想環境を使われないと言うのも初めて知ったので本当に助かりました! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問