質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

10643閲覧

python3.xの複数バージョン環境における、pip3のインストール先を変更したい。

chulton97

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2020/06/11 03:10

編集2020/06/11 04:41

前提・実現したいこと

Ubuntu 16.04.6 LTSでwebサーバを構築し、pythonをcgiとして実行したいと思っています。
python3.7のインストールから、cgiの設定まで行い、ページが表示される所までは出来ています。
現在インストールされているpythonが3つありまして、

  • python2.7
  • python3.5
  • python3.7 <- このバージョンで動かしたい

発生している問題・エラーメッセージ

python

1import mysql.connector

でModuleNotFoundErrorが発生します。
単純にライブラリがインストールされていないのが問題なのですが、pip3で正しくインストールが出来ていない状況です。

pip3は以下の場所にインストールされています。

# pip3 -V pip 20.1.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

そのまま、mysql-connector-pythonをインストールすると

# pip3 install mysql-connector-python /usr/local/lib/python3.5/dist-packages/配下にライブラリがインストールされます。

試したこと

pip3をremoveしてみました

# sudo apt-get --purge remove python3-pip Package 'python3-pip' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. # which pip3 /usr/local/bin/pip3 # pip3 -V pip 20.1.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

と、pip3は残ったままです。

インストール先を指定してみました。

# pip3 install mysql-connector-python -t /usr/local/lib/python3.7/dist-packages

そのディレクトリにライブラリは保存されるのですが、ModuleNotFoundErrorは出たままでした。

あと、最初にpip3をインストールした時のpython3バージョンは不明ですが、途中で以下の作業を行いました。

#vi ~/.bashrc alias python3='/usr/bin/python3.7'を追記 # python3 --version Python 3.7.7

補足情報(FW/ツールのバージョンなど)

Ubuntu 16.04.6 LTS
python 3.5 / 3.7

pip3でインストールするパッケージのバージョン指定はチラホラ情報はあるのですが、python3.xのバージョン指定を見つけることが出来ませんでした。

追記
/usr/local/bin 配下はpython3.7しか入っていませんでした。

-rwxr-xr-x 1 root root 224 Jun 11 09:59 pip* -rwxr-xr-x 1 root root 224 Jun 11 09:59 pip3* -rwxr-xr-x 1 root root 224 Jun 11 09:59 pip3.5* -rwxr-xr-x 1 root root 223 May 30 22:08 pip3.7* -rwxr-xr-x 1 root root 84 May 30 22:08 pydoc3.7* -rwxr-xr-x 2 root root 13842536 May 30 22:07 python3.7* -rwxr-xr-x 2 root root 13842536 May 30 22:07 python3.7m* -rwxr-xr-x 1 root root 2902 May 30 22:08 python3.7m-config* -rwxr-xr-x 1 root root 441 May 30 22:08 pyvenv-3.7*

/usr/local/lib 配下が以下の通りなので、3つあると思っていました。

drwxrwsr-x 4 root staff 4096 May 30 08:43 python2.7/ drwxrwsr-x 3 root staff 4096 Aug 18 2016 python3.5/ drwxr-xr-x 36 root root 4096 Jun 11 10:12 python3.7/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2020/06/11 04:33

質問から /usr/local/bin の下にpython3.5が入っているだろうという推測ができますが合っていますか? python3.7 も /usr/local/bin にあるのですか? > 現在インストールされているpythonが3つありまして、 と認識している根拠となるファイルのありかを示せますか?
chulton97

2020/06/11 04:43

/usr/local/bin と /usr/local/lib の中身を記載しました。 alias python3='/usr/bin/python3.7'を追記する前にpython3のバージョンを確認したら3.5と出たので、入っているものと思っていました。
guest

回答1

0

ベストアンサー

疑問点が書いてないので回答のしようもありませんがpython3.7を使いたいという点だけを言えばpip3.7とpython3.7のコマンドを使えばいいだけではないでしょうか?
shebangにpython3.7と書けばいいのでは。

大雑把な感想としては、

/usr/local に入っているコマンドはaptで入れたものではないのでaptでアンインストールしようとしても無駄です。

タイムスタンプからするとpython3.7 を/usr/localにどうやってかインストールしたあとで、aptで入っていた/usr/bin/pip3(当然これはaptで入った/usr/bin/python3.5に紐付いています)をpip3 install --upgrade pipあたりでアップデートしたのでは。これをすると新しいpip3コマンドは/usr/local/binに入ります。

今の状況は

/usr/bin/python3.5 がapt由来のもので入っていそう
/usr/local/bin/python3.7 は自分で入れた
/usr/local/bin/pip3 は /usr/bin/python3.5 に紐付くように自分でupgradeした

という感じではないでしょうか。

head -n 1 /usr/local/bin/pip3
すると、
#!/usr/bin/python3
と出てくるのでは。

投稿2020/06/11 08:15

編集2020/06/11 08:25
quickquip

総合スコア11235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chulton97

2020/06/11 09:04

ありがとうございました。 pip3.7というコマンドがあることがわかっていなく、pip3.7でパッケージのインストールが上手く行きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問