Centos 6 python 3インポートpygame ModuleNotFoundError:No module named'pygame'異常の解決方法

4004 ワード

pygameモジュールパッケージをインストールしたら、python 3にpygameモジュールをインポートして、モジュールが正常にインストールされているかどうかを確認する必要があります.(pygameのインストール方法参照接続:pip 3でpygameをインストール)
#    python3 
python3  
#    pygame ,        
>>> import pygame
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'pygame'

前にインストールしたpygameモジュールは、なぜインポート時に見つからないのでしょうか.pygameに関する情報を見てみましょう.
#    pygame     
pip3 show pygame

#    pygame      
Name: pygame
Version: 1.9.6
Summary: Python Game Development
Home-page: https://www.pygame.org
Author: A community project.
Author-email: [email protected]
License: LGPL
Location: /usr/local/python3/lib/python3.7/site-packages
Requires: 
Required-by:

以上の情報からpygameインストールの経路を知ることができます.このディレクトリに切り替え、python 3を実行してpygameモジュールをインポートすると、正常にインポートできます.
#     
cd /usr/local/python3/lib/python3.7/site-packages
#    python3,     pygame   
python3
>>> import pygame
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html

上記の検証により、python 3をインストールしたことを思い出すことができます.7の場合、インストールが完了すると、python 3のディレクトリに直接命令python 3を入力して実行し、他の場所で同じ命令を実行してもエラーメッセージが表示されます.解決策は、/usr/binディレクトリでpython 3にソフトリンクを設定することで、python 3コマンドをどこでも実行できます.これはlinux PATH環境変数の問題に関連し、echo$PATHに環境変数を表示するように命令することができます.したがって,同じ場合にpython PATH環境変数に関する問題がある.python PATHの環境変数を以下に示します.
python3
#    sys   
>>> import sys
#    PATH
>>> sys.path
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']

比較結果、PATH内:'/usr/local/python 3/lib/python 3.7/site-packages'ディレクトリ(pygameが存在するディレクトリ)には'/usr/local/lib/python 3があります.7/site-packages'ディレクトリ
したがって、解決策は4つあります.A.pygame設定を'/usr/local/lib/python 3にソフトリンクします.7/site-packages'ディレクトリ.B.'/usr/local/python 3/lib/python 3.7/site-packages'ディレクトリはpython作業検索パスに追加されます.C./usr/local/lib/python 3.7/site-packagesディレクトリ作成.pthファイル.D.システムPATH環境変数にPYTHONPATH環境変数を追加する.
 
方法1:lnソフトリンクを確立する
#      
ln -s /usr/local/python3/lib/python3.7/site-packages/pygame /usr/local/lib/python3.7/site-packages/pygame

方法2:sys.パスの追加
python3

>>> import sys
#    python PATH
>>> sys.path
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
#   pygame         PATH      
>>> sys.path.append('/usr/local/python3/lib/python3.7/site-packages')
#      python PATH
>>> sys.path
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages', '/usr/local/python3/lib/python3.7/site-packages']

pip 3にインストールされているサードパーティ製モジュールパッケージは、/usr/local/python 3/lib/python 3に配置されているためです.7/site-packagesディレクトリでsysにディレクトリを追加する.path検索パスは、サードパーティモジュールに直接インポートできます.欠点:現在のpythonプロセスでのみ有効であり、pythonを終了するとsysが自動的にクリアされます.path検索パス.
 
方法3:確立する.pthファイル
sysに入ります.pathに表示する検索パスディレクトリを作成する.pthファイル.
cd /usr/local/lib/python3.7/site-packages

#    .pth   ,   my_file.pth
vim my_file.pth
#       ,    
/usr/local/python3/lib/python3.7/site-packages

python 3を実行すると、pygameが正常にインポートされ、sysにpygameのディレクトリパスが追加されます.path中.このメソッドは永続的に追加されます.
 
方法四:PYTHONPATH環境変数を追加する
vim /etc/bashrc
#          
export PYTHONPATH=/usr/local/python3/lib/python3.7/site-packages

#      ,      
source /etc/bashrc

構成が完了したら、新しい端末またはbash shellを開き、python 3を実行してpygameモジュールを正常にインポートします.同時にsys.pathには、モジュールが存在するディレクトリパスが含まれています.このメソッドも永続的に追加されます.
 
次の文書を参照してください.
python 3サードパーティ製関数ライブラリをインポートし、関数ライブラリをカスタマイズするいくつかの構成方法