web-dev-qa-db-ja.com

pythonにインストール済みパッケージをインポートできません

Pip(pip 1.5.4 from /usr/lib/python2.7/dist-packages(python 2.7))をインストールしました。 pythonバージョンは2.7です。

apt-get install python-pygamepygameをインストールし、成功メッセージを受け取りました。しかし、pythonにインポートしようとすると、次のメッセージが表示されます。

ashish@Ashish-Notebook:~$ python
Python 2.7.11 (default, Jun  6 2016, 07:21:54) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygame
>>> 

同様に、pip install BeautifulSoupでBeautiful Soupをインストールしましたが、どこにもインポートできません。さらに、もう一度インストールしようとすると、次のメッセージが表示されます。

Requirement already satisfied (use --upgrade to upgrade): BeautifulSoup in /usr/local/lib/python2.7/dist-packages
Cleaning up...
ashish@Ashish-Notebook:~$

さらに、インストールされたパッケージのリストを(pipリストで)取得したとき。私はそのリストでpygameとbeautifulsoupを見ることができます。

4
A.Gautam

問題は、Sudo apt-get install(またはSudo pip install)でインストールすると、/usrの場所にインストールされるが、ソースからコンパイルしたpythonがインストールされることです。 /usr/local。プロンプトでpythonと入力したときに実際に実行されるpythonは、(python -c 'import sys; print(sys.path)'コマンドの出力に基づいて)コンパイルしたものであり、pythonパッケージは/usrディレクトリにインストールされています。ただし、Ubuntuにはpython(python 2とpython 3の両方)が正しい場所に既にインストールされており、インストールされたパッケージが見つかります。したがって、一般的な推奨事項は、このようなインストール方法を混在させないようにすることです。 Ubuntuには、公式リポジトリから入手できる多くのソフトウェアパッケージがあり、多くのコンパイルを行う必要がありません。可能な場合は、aptを使用してソフトウェアをインストールすることをお勧めします。

とはいえ、pythonパッケージ(PygameやBeautiful Soupなど)の場合、物事はもう少し多くなる可能性があります 複雑なpipapt-getを混在させると問題が発生する可能性があるため、物事をシンプルに保つための1つのアプローチは、システムパッケージマネージャーだけに固執することです。パッケージマネージャーに必要なもの(または最新バージョン)がないためにpipを使用する必要がある場合は、 仮想環境 内で作業し、すべてのpythonその仮想環境内で必要なパッケージ。

デフォルトのシステムpythonを正しく見つけるようにシステムに指示するには(pythonを呼び出したときのデフォルトのpython 2)、pythonコマンドをプロンプトで元の宛先にルーティングするシンボリックリンクを書き直してください。

Sudo ln -s /usr/bin/python2.7 /usr/bin/python

うまくいけば、インストールしたpythonパッケージを見つけることができるはずです。

4
muon