Pythonバージョン3.5.2があり、pip3があるので、
Sudo pip3 install pyqt5
/usr/local/lib/python3.5/dist-packagesにインストールされました
ただし、python 3インタープリターを入力して入力すると、
import PyQt5
pyQt5という名前のモジュールが見つからないというエラーが表示されます。
だから私は/usr/local/lib/python3.5/dist-packagesパスをPYTHONPATHに追加してみました
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.5/dist-packages
しかし、それは何も修正しませんでした。 Python 3.5.2でPyQt5を検出するにはどうすればよいですか?
ジョージのおかげで、私はゆっくりと答えを得ました。問題の根本は、Ubuntu aptitudeパッケージマネージャーからではなく、ソースからPython 3.5.2バージョンをインストールしたことにあります。
基本的に、Pythonがソースからインストールされている場合、サードパーティパッケージを探すために/usr/local/lib/python3.5/site-packages
を使用しますが、apt
を使用してインストールされている場合はPythonは/usr/local/lib/python3.5/dist-packages
を検索します。これは、いくつかのPythonバージョンが絡まないようにするためです。以下に説明する別の質問があります: dist-packagesとsite-packagesの違いは何ですか? 。
解決策:
Python3のインストールでは、サイトパッケージを調べ、dist-packagesを無視していました。そのため、dist-packagesの内部にも見えるようにパスファイルを追加しました。
cd /usr/local/lib/python3.5/site-packages
Sudo vim dist-packages.pth
(Press i to go into insert mode inside Vim)
../dist-packages
:x (and Press Enter/Return)
Pythonが/site-packages
の中を見ると、dist-packages.pth
を見つけて/dist-packages
に入ります。
その他の解決策:
他の誰か は私の逆の問題を抱えていました。そこではPythonインストールは/dist-packages
の内部しか見えなかったので、 dist-packages.pth
内の../dist-packages
ファイル(/site-packages
を含む)、site-packages.pth
ファイル(../site-packages
内の/dist-packages
を含む)を作成しました。
動作したかどうかを確認します:
これが機能しているかどうかを確認する簡単な方法は、Pythonインタープリターに移動してsys.pathを出力することです。これで、両方のパッケージパスが含まれるようになります。
charliebrown@playground:/usr/local/lib/python3.5/site-packages$ python3
Python 3.5.2 (default, Nov 19 2016, 02:36:25)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys; print(sys.path)
['', '/usr/local/lib/python35.Zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload',
'/usr/local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages']
これがいつか誰かを助けることを願っています...