Pip(pip 1.5.4 from /usr/lib/python2.7/dist-packages
(python 2.7))をインストールしました。 pythonバージョンは2.7です。
apt-get install python-pygame
でpygame
をインストールし、成功メッセージを受け取りました。しかし、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を見ることができます。
問題は、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など)の場合、物事はもう少し多くなる可能性があります 複雑な 。 pip
とapt-get
を混在させると問題が発生する可能性があるため、物事をシンプルに保つための1つのアプローチは、システムパッケージマネージャーだけに固執することです。パッケージマネージャーに必要なもの(または最新バージョン)がないためにpipを使用する必要がある場合は、 仮想環境 内で作業し、すべてのpythonその仮想環境内で必要なパッケージ。
デフォルトのシステムpythonを正しく見つけるようにシステムに指示するには(python
を呼び出したときのデフォルトのpython 2)、python
コマンドをプロンプトで元の宛先にルーティングするシンボリックリンクを書き直してください。
Sudo ln -s /usr/bin/python2.7 /usr/bin/python
うまくいけば、インストールしたpythonパッケージを見つけることができるはずです。