pythonでのカメラ制御
ラズベリーパイのカメラモジュールを接続してpythonで動かそうとしたのですが
no module named picamraとエラーを返されてしまいました。
sudo apt-get install python-picamera
sudo apt-get update
を実施したのですが結果は変わらなかったです
原因はなんでしょうか?
釣りかもしれませんが、念のためまじめに返事してみます。
まず、updateとinstallの順番を逆にして試しましょう。
次に、真摯な答えを期待するには最低限エラーログ、できればソースコードを提示しましょう。
最後に、おそらくpicamera公式ドキュメントや開発者にたどり着ける有用なサイトがこちらにあります。
http://bit.ly/1wZdyd8
回答ありがとうございます。
問題が起きた後、いったんやめてから後でフォーラムに投稿しようと思いつき勢いで書いてしまいました。
マナーが欠如していたとおもいます。申し訳ございません。
ソースコードに関してはとある雑誌のソースコードをそのまま書いていたものなので
あえて提示しなかったのですがアドバイスがほしいので出します。
import time
import picamera
from webob import Request, Response
#ここからHTMLソース
html = """
 Camera Control
"""
#ここまでHTMLソース
class WebApp(object):
	def save_picture(self ,filename):
		with picamera.PiCamera() as camera:
			camera.resolution = (640, 480)
			camera.start_preview()
			time.sleep(2)
			camera.capture(filename)
	def __call__(self ,environ ,start_response):
		global html
		req = Request(environ)
		if req.path=='/image.jpg':
			self.save_picture('image.jpg')
			bin_data = open('image.jpg', 'rb').read()
			resp = Response(bin_data ,content_type='image/jpeg')
		elif req.path=='/':
			button = req.params.get('button', '')
			resp = Response(html)
		else:
			resp = Response()
return resp(environ, start_response)
application = WebApp()
if __name__ == '__main__':
	from wsgiref.simple_server import make_server
	port = 8080
	httpd = make_server('', port, application)
	print('Serving HTTP on port %s...' % port)
	httpd.serve_forever()
-------------------------------------------------------------------------------------
エラー内容
Traceback (most recent call last):
  File "webcamera.py", line 2, in 
    import picamera
ImportError: No module named picamera
ちなみにupdateとinstallの順番を逆にしてやってみましたが
同じエラーが表示されました。
updateとinstallを実行した際のログもご提示いただけると何かわかるかもしれません。
エラーが言っているのはpythonがpicameraというモジュールを見つけていないので、原因は
1、インストール済みだが、パス・権限の関係でpythonが見つけられなかった
2、インストールに失敗している
のどちらかだと思われますので、やはりupdateとinstallの実行ログをお願いします。
googleで検索すると上記1に関連して、ユーザーが管理者の場合にpicameraが見つからないというのが多々見られますので、ご提示のソースを管理者(root)として実行していないかどうか(sudo python ***.pyしていないか)、そもそも使っているユーザーがrootかどうかも確認してみてください。
気になる点として、webobについてあまり詳しくないですが、こちらのコードは単純にpython ***.pyとして実行していますか?それともCGIなどとしてブラウザからアクセスしていますか?後者の場合はユーザがwebサーバーのユーザーになりますので、そのユーザーを確認する必要があります。
アドバイスを参考にいろいろ見直したら解決できました。
このプログラムは「python3 webcamera.py」で実行していたのですが
インストールするべきカメラのモジュール制御は「sudo apt-get install python-picamera」ではなく
「sudo apt-get install python3-picamera」のようでこれを実施したら動作できました。
アドバイスありがとうございます。
解決できてよかったです。おめでとうございます。
念のため、python3をお使いということで、これはご存じかもしれませんが、python2.*と3.*では色々違っていて、現時点で多くのモジュールはまだ2.*にしか対応していません。(開発が止まっているけど使いやすくてみんな使うモジュールは当然ながら今後も2.*対応しかありません)従って今後このスクリプトを改造して機能を増やしたりする際はご注意なさるといいかと思います。
Read Terms of Service upon submitting. 投稿する前に利用規約をお読みください。