python2、python3混在のラズパイへのモジュールインストール

LINEで送る
Pocket

python2、python3混在のラズパイへのモジュールインストール

python2とpython3が混在するラズパイへのモジュールインストールについて

新規のmicroSDカードにRaspbian をインストールして、python3環境で動作するpythonプログラムに種々のモジュールをインストールする方法

python3でAI自然会話ロボットを開発しています。

python3プログラムで利用するモジュールのインストール方法

(1)モジュールインストール時の注意

   sudo pip3 install XXXXX(モジュール名)とする。

   pip install XXXXX(モジュール名)とすると、

python2の環境へインストールされるのでpython3環境で 実効すると、
モジュールのインストールエラー(ImportError)がでる。

当該プログラムを実効すると、以下のようなエラーが出る。

以下は、pip install beautifulsoup4 として、beautifulsoup4モジュールをインストールした場合である。

File “/usr/local/lib/python2.7/dist-packages/bs4/__init__.py”, line 53 ‘You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>’You need to convert the code, either by installing it (python setup.py install) or by running 2to3 (2to3 -w bs4).’ ^ SyntaxError: invalid syntax

そこで、 以下は、Janomeのインストール時のLXTerminalの内容 :

pi@raspberrypi:~/Ptna $ sudo pip3 install Janome
Collecting Janome Downloading https://www.piwheels.hostedpi.com/simple/janome/Janome-0.3.6-py3-none-any.whl (20.7MB) 100% |████████████████████████████████| 20.7MB 14kB/s
Installing collected packages: Janome
Successfully installed Janome-0.3.6

以下のように、「/usr/local/lib/python3.5/dist-packages」の環境にインストールされている。

pi@raspberrypi:~/Ptna $ pip3 show janome Name: Janome Version: 0.3.6 Summary: Japanese morphological analysis engine. Home-page: http://mocobeta.github.io/janome/ Author: Tomoko Uchida Author-email: tomoko.uchida.1111@gmail.com License: AL2
Location: /usr/local/lib/python3.5/dist-packages
Requires:

参考: pip3でなく、pipでインストールした場合 (/usr/local/lib/python2.7/dist-packages)というpython2の環境にインストールされる。
pi@raspberrypi:~ $ sudo pip install Janome
Collecting Janome Downloading Janome-0.3.6.tar.gz (20.0MB) 100% |████████████████████████████████| 20.0MB 13kB/s Building wheels for collected packages: Janome Running setup.py bdist_wheel for Janome … done Stored in directory: /root/.cache/pip/wheels/06/3a/df/8a8ca99633cc64d7cb46f0684230d6e9b4b93e581d66709653
Successfully built Janome Installing collected packages: Janome Successfully installed Janome-0.3.6

pi@raspberrypi:~ $ sudo pip install requests
Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages

pi@raspberrypi:~ $ pip show janome

Name: Janome Version: 0.3.6
Summary: Japanese morphological analysis engine.
Home-page: http://mocobeta.github.io/janome/
Author: Tomoko Uchida
Author-email: tomoko.uchida.1111@gmail.com
License: AL2
Location: /usr/local/lib/python2.7/dist-packages
Requires:

pi@raspberrypi:~ $ sudo pip install beautifulsoup4
Collecting beautifulsoup4 Downloading beautifulsoup4-4.6.0-py2-none-any.whl (86kB) 100% |████████████████████████████████| 92kB 1.3MB/s Installing collected packages: beautifulsoup4
Successfully installed beautifulsoup4-4.6.0

pi@raspberrypi:~ $ pip show beautifulsoup4
Name: beautifulsoup4
Version: 4.6.0
Summary: Screen-scraping library Home-page: http://www.crummy.com/software/BeautifulSoup/bs4/
Author: Leonard Richardson
Author-email: leonardr@segfault.org
License: MIT
Location: /usr/local/lib/python2.7/dist-packages
Requires:
pi@raspberrypi:~ $

このようにインストールロケーションが、
Location: /usr/local/lib/python2.7/dist-packages
となる。

結論:
python2とpython3が混在するラズパイで、python3環境でプログラムを実行する場合のモジュールインストールは、

$ sudo pip3 install XXXXX
とする。XXXXXは、モジュール名

pipでなくpip3とすること。

 

LINEで送る
Pocket

複数ロボット自然会話システム(4)

LINEで送る
Pocket

複数ロボット自然会話システムシステム(4)

複数ロボット自然会話システムシステム(1)
複数ロボット自然会話システムシステム(2)
複数ロボット自然会話システムシステム(3)
複数ロボット自然会話システムシステム(4)

ソフトウェア方式設計:

  1.  対談モード:
    1. 辞書
      AA-u/d BA-u/d CA-u/d
      AB-u/d BB-u/d CB-u/d
      AC-u/d BC-u/d CC-u/d

      辞書フォーマット:
      taidan={‘taidan’:{‘AA’:,u/d,message,’AB’:u/d,message,以下同様}}
      AAは、パターンで辞書のキー、u/dは、アップ/ダウンモードで、uモードまたはdモードの二者択一とする。Messageは、会話文。

    1. ていだんモード:
      1. 辞書(参加ロボットが3人の場合)
        ABC-A-u/d ACD-A-u/d BCD-B-u/d BAD-B-u/d
        ABC-B-u/d ACD-C-u/d BCD-C-u/d BAD-A-u/d
        ABC-C-u/d ACD-D-u/d BCD-D-u/d BAD-D-u/d

        辞書フォーマット:
        teidan={‘teidan’:{‘ABC-A’:u/d,message,’ABC-B’:u/d,message,以下同様}}

        ABC-Aは、パターンで辞書のキー、u/dは、アップ/ダウンモードで、uモードまたはdモードの二者択一とする。Messageは、会話文。

    1. 会談モード:
      1. (1) 辞書(参加ロボットが4人の場合)

        ABCD-A-u/d
        ABCD-B-u/d
        ABCD-C-u/d
        ABCD-D-u/d

        辞書フォーマット:
        kaidan={‘kaidan’:{‘ABCD-A’:u/d,message,’ABCD-B’:u/d,message,以下同様}}
        ABCD-Aは、パターンで辞書のキー、u/dは、アップ/ダウンモードで、uモードまたはdモードの二者択一とする。Messageは、会話文。

    2. サーバープログラムは、サーバーのMySQLデータベースからパラメータ情報をダウンロードして、辞書ファイルを初期化してサーバーへアップロードする。
    3. クライアントプログラムは、自分が所属するパターンのみサーバーからローカルにダウンロードして辞書を管理する。
    4. クライアントプログラムは、各パターンを参照して、u/dのアップロードモードのuモードがあれば、その会話文に対する応答文を生成して、関連するロボットへアップロードする。
    5. クライアントプログラムは、スレッドを立てて定期的にサーバーから辞書データをダウンロードして、投げ掛けられて会話文があるかチェックして、あればレスポンダーから応答文を得てサーバーに応答文をアップロードする。
    6. クライアントプログラムからアップロードされた会話文はMySQLデータベースに保存される。
    7. ていだんモードと会談モードは、同一処理となる。
    8. ていだんモードと会談モードは、会話文をアップしたロボットのu/dモードは、dモードに設定して、他のロボットのu/dモードは、uモードに設定する。

群馬プログラミングカレッジでは、種々のロボットを開発しています。

複数ロボット自然会話システム

このシステムに接続すると、ロボット同士の自然会話を行うことができます。
会話希望の方はご連絡ください。

WebサービスAPIのインターフェースを提供します。

 

LINEで送る
Pocket