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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1200閲覧

複数バージョンのpythonが変なディレクトリに保存されており上手く機能しません。

nakouna

総合スコア1

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/11/25 12:19

前提

python3でpipをupdateする必要があり、updateしたところ機能しなくなりました。
そこで旧バージョンを残したまま新バージョンのpythonをインストールすることにしました。

既存がpython3.6で、①の方法でpython3.9をインストール
→前のバージョンが使用不可能に。またrm -rfを実行しても削除できず、sudo apt-get removeを実行すると該当ファイルが見つからない事態に。

①の方法
https://self-development.info/ubuntu%E3%81%AB%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEpython%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

実現したいこと

・python3.9を削除したい

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

nakou1025@LAPTOP-CO9C0VJA:~$ rm "Python-3.9.2" rm: cannot remove 'Python-3.9.2': Is a directory nakou1025@LAPTOP-CO9C0VJA:~$ sudo apt-get remove Python-3.9.2 [sudo] password for nakou1025: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package Python-3.9.2 E: Couldn't find any package by glob 'Python-3.9.2' E: Couldn't find any package by regex 'Python-3.9.2'

保存先やバージョンについて

python

1nakou1025@LAPTOP-CO9C0VJA:~$ ls /usr/bin/python* 2/usr/bin/python /usr/bin/python3-jsonpointer /usr/bin/python3.6m-config 3/usr/bin/python3 /usr/bin/python3-jsonschema /usr/bin/python3.8 4/usr/bin/python3-config /usr/bin/python3.6 /usr/bin/python3m 5/usr/bin/python3-jsondiff /usr/bin/python3.6-config /usr/bin/python3m-config 6/usr/bin/python3-jsonpatch /usr/bin/python3.6m 7nakou1025@LAPTOP-CO9C0VJA:~$ which python3 8/usr/local/bin/python3 9nakou1025@LAPTOP-CO9C0VJA:~$ ls 10OpenJij Python-3.9.2 Python-3.9.2.tar.xz cmake-3.23.3 cmake-3.23.3.tar.gz 11 12nakou1025@LAPTOP-CO9C0VJA:~$ rm "Python-3.9.2" 13rm: cannot remove 'Python-3.9.2': Is a directory 14nakou1025@LAPTOP-CO9C0VJA:~$ sudo apt-get remove Python-3.9.2 15[sudo] password for nakou1025: 16Reading package lists... Done 17Building dependency tree 18Reading state information... Done 19E: Unable to locate package Python-3.9.2 20E: Couldn't find any package by glob 'Python-3.9.2' 21E: Couldn't find any package by regex 'Python-3.9.2' 22 23nakou1025@LAPTOP-CO9C0VJA:~$ python3 -V 24Python 3.9.2 25

今までは /usr/bin/pythonから実行できていてので、自分のホームディレクトリにあるpython3.9.2が邪魔をしてそうなのですが削除することが出来ません、、、

試したこと

sudo apt-get remove
rm -rf
で削除を試みたが失敗

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

Ubuntuのバージョンは18.04.6です。

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

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

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

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

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

y_waiwai

2022/11/25 12:28

機能しない、とかできません、とか情報量がゼロです。 具体的に何がどうなって機能しないのか、何をどうやって削除しようとしてその結果がどうなったのか、きちんと説明しましょう
TakaiY

2022/11/25 12:58

まず、上手くいかなかっかたらといって、何をしようとしているのかわからずに、いきなり「rm」コマンドで消そうとしてはいけません。最悪OSが起動しなくなります。 また、ソースからビルドしているのに、「sudo apt-get remove Python-3.9.2」としようとしてもアンインストールできません。apt-get(今はapt)コマンドは、apt-getコマンドでインストールしたものだけコントロールできます。 さて、したことが、質問に書いてあることだけであれば、たぶん、 3.6 も 3.9 も入っています。 $ which python3.6 $ which python3.9 を打ってみてください。 また、 $ echo $PATH の結果も追記してください。
nakouna

2022/11/25 14:02

@y_waiwai ご回答ありがとうございます。ご指摘をいただき、少し自分の中でも整理が付きました。とりあえずpython3.9導入前の状態に戻したいと思っています。 機能しない>>python3.6が機能しなくなったということです。自分でも書きながらよくわかっていませんでした。 何をどうやって削除しようとしてその結果どうなったか>>「発生しているエラーメッセージ」の項に記載。python3.9の削除を試みました。
nakouna

2022/11/25 14:06

@TakaiY ご回答ありがとうございます。 「rm」コマンドは安易に使用してはいけないのですね。勉強になります。 実行結果は以下のようになりました。 --- nakou1025@LAPTOP-CO9C0VJA:~$ which python3.6 /usr/bin/python3.6 nakou1025@LAPTOP-CO9C0VJA:~$ which python3.9 /usr/local/bin/python3.9 nakou1025@LAPTOP-CO9C0VJA:~$ echo $PATH /home/nakou1025/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Program Files (x86)/Windows Resource Kits/Tools/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/webdrivers:/mnt/c/Program Files/Java/jdk-16.0.1/bin:/mnt/c/Program Files/PowerShell/7/:/mnt/c/Users/nakanisi/anaconda3:/mnt/c/Users/nakanisi/anaconda3/Library/mingw-w64/bin:/mnt/c/Users/nakanisi/anaconda3/Library/usr/bin:/mnt/c/Users/nakanisi/anaconda3/Library/bin:/mnt/c/Users/nakanisi/anaconda3/Scripts:/mnt/c/Users/nakanisi/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/nakanisi/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/iverilog/bin:/mnt/c/iverilog/gtkwave/bin:/mnt/c/texlive/2021/bin/win32:/snap/bin --- 仰るとおり、両方場所は微妙に違いますが入っていますね、、、
guest

回答1

0

ベストアンサー

たぶん、3.6 も 3.9 もちゃんと入っています。

text

1nakou1025@LAPTOP-CO9C0VJA:~$ which python3.6 2/usr/bin/python3.6 3nakou1025@LAPTOP-CO9C0VJA:~$ which python3.9 4/usr/local/bin/python3.9

元のpython3.6 は /usr/bin に、 新しく入れた python3.9 は/usr/locla/binに入っていることがわかります。
3.9を消すのが希望ということですが、コンパイルして入れたものを消すのは残念ながら難しいです。このままにしておくのがお勧めです。 積極的に使うのもありでしょう。

さて、両方入っているのに 3.6 が使えなくなっている原因ですが、環境変数PATHの内容が原因です。PATHはShellがコマンドを探す場所が入っています。 探すのは先頭からです。現状PATHを見ると、 /usr/local/bin が /usr/bin よりも前に入っていますね。

■ 案1
確認すればわかりますが、 /usr/local/bin にも /usr/bin にも pythonで始まるファイルが沢山あるはずです。

python

1$ ls -l /usr/bin/python* 2/usr/bin/python 3/usr/bin/python3 ★ 3.6へのシンボリックリンク 4/usr/bin/python3.6 5などなど 6 7$ ls -l /usr/local/bin/python* 8/usr/local/bin/python 9/usr/local/bin/python3 ★ 3.9へのシンボリックリンク 10/usr/local/bin/python3.9 11などなど

この状態で、python3 を起動しようとすると、/usr/local/bin/python3 が 最初にみつかるので、3.9 が起動します。
なので、「/usr/local/binにある python3 ファイルを別名にしてしまう」もしくは「/usr/local/binにある python3 ファイルを消ししまう」 ことで、 /usr/bin/python3(これは python3.6です) が使えることになります。
もとに戻せば、3.9も使えます。 また、 python3.9 で呼び出せば、戻さなくても3.9は使えます。

■ 案2
alternatives というコマンドを使うと、インストールされているコマンドを切り替えて使うことができます。
便利なコマンドですが、ちょっと面倒です。 興味があれば検索してみてください。

投稿2022/11/25 16:16

TakaiY

総合スコア12781

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

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

nakouna

2022/11/28 05:16

ありがとうございます! 案2の方で使い分けることにしました。 パスの理解が浅いことが浮き彫りになったので、そこをもっと勉強してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問