15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonライブラリ導入時のapt/pipの違いについて

Last updated at Posted at 2021-02-18

Pythonライブラリの混在について(ubuntu18.04にて調査)

 ubuntuでPythonのライブラリを使う場合,ubuntu標準のPythonライブラリ(sudo apt install python3-hoge)を使う方法と,pipのライブラリを使う方法があります。pipについては,sudo管理者権限の実行と,一般ユーザでの実行での違いもあります。どちらかでインストールするともう片方でライブラリが入らなかったり,混在して競合することがあるので,調べたことをメモっておきます。(今回はvenvを使わない前提で。)

インストール先のパス

入れ方 ①sudo apt install ②sudo pip install ③pip install
インストール先のパス /usr/lib/python3/dist-packages /usr/local/lib/python3.6/dist-packages /home/hoge/.local/lib/python3.6/site-packages/
利用シーン rootが全ユーザに適用したい場合 rootが全ユーザに適用したい場合 一般ユーザが自分自身のみを対象に使う場合

優先順位

同じライブラリが入っている場合,パスの順序の優先度が高いものが利用されます。以下の方法で確認できます。

import sys
print(sys.path)

結果はこんな感じ。優先度的には③>②>①の順です。

['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', 
'/home/hoge/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages',
 '/usr/lib/python3/dist-packages']

導入順序による導入可否

①→②

入らない。
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages
と「すでに入ってまっせ」と言われる。

②→①

入る。でも②の方が優先なので,想定した動き(aptで入れたライブラリを使いたい!)をしない。

①→③,②→③

入る。使うときには③が最優先になる。

15
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?