回答編集履歴

6

追記

2022/02/03 15:24

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -46,3 +46,16 @@
46
46
  pyenv local --unset
47
47
  ```
48
48
  するといいかと。
49
+
50
+ ----
51
+
52
+ 追記
53
+
54
+ `pyenv global xxx` すると、上で書いた、pyenvを使ったバージョン決定の優先度の4番、$(pyenv root)/version に xxx を書き込みます。
55
+ `pyenv local xxx` すると、その時のカレントディレクトリに .python-version を作り xxx を書き込みます。
56
+ `pyenv shell xxx` すると、PYENV_VERSION 環境変数に xxx を書き込みます。
57
+ (`pyenv local --unset`と`pyenv shell --unset`は削除になります)
58
+
59
+ で、優先度が PYENV_VERSION 環境変数 > カレントディレクトリの .python-version > 上位ディレクリ > $(pyenv root)/version ですから、つまり、pyenv global で設定した値よりも pyenv local で設定した値が優先され、pyenv local で設定した値よりも pyenv shell で設定した値が優先されるという意味です。
60
+
61
+ 逆に見ると、シェルの中で pyenv shell を実行してない時は pyenv local で指定された値を使おうとします。pyenv local が実行されたディレクトリでなければ pyenv global で指定された値を使います。

5

追記

2022/02/03 14:24

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -25,3 +25,24 @@
25
25
 
26
26
  `pyenv root` で、pyenvがどこをルートにしているか分かるんですね。(今気づきました)
27
27
  そこを全部消して、シェルの設定からpyenv関連の記載を削除すれば十分ですね。
28
+
29
+ ----
30
+
31
+ 追記
32
+
33
+ https://github.com/pyenv/pyenv#user-content-choosing-the-python-version
34
+ を見てください。pyenvを使ったバージョン決定の優先度は
35
+ 1. PYENV_VERSION 環境変数
36
+ 2. カレントディレクトリの .python-version
37
+ 3. カレントディレクトリからディレクトリを上に遡っていって最初に見つかった .python-version
38
+ 4. $(pyenv root)/version
39
+ の順です。
40
+
41
+ あなたが過去に /Users/name で `pyenv local 3.10.0` を1回でも実行したなら、そこに .python-version ができて3.10.0が書き込まれています。それだとホームディレクトリの配下全体で、3.10,0が指定されているように動きます。(個別にpyenv localを指定したディレクトリではそれが動きます)
42
+ `(set by /Users/name/.python-version)` と表示されているならそういう状態なのでしょう。
43
+
44
+ ```
45
+ cd /Users/name
46
+ pyenv local --unset
47
+ ```
48
+ するといいかと。

4

追記

2022/02/03 06:26

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -19,3 +19,9 @@
19
19
 
20
20
  使用しているOSとシェル、pyenvをインストールした方法と環境設定した方法を(全部じゃなくてもいいので)質問を編集して書いてもらえるといいかと思います。
21
21
  もしくは、pyenvのバージョン(`pyenv -V`の結果)と、`which pyenv`でわかるpyenvの場所と、pyenvが有効な状態での`which python`の結果が分かればおおよその見当はつくと思います。(ただしpyenvがまともにインストールされていたならという前提で)
22
+
23
+ ----
24
+ 追記
25
+
26
+ `pyenv root` で、pyenvがどこをルートにしているか分かるんですね。(今気づきました)
27
+ そこを全部消して、シェルの設定からpyenv関連の記載を削除すれば十分ですね。

3

追記

2022/02/02 16:22

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -18,3 +18,4 @@
18
18
  要するに、インストールした方法と、環境設定をした方法に依るので(インストールした方法と環境設定をした方法が別なことに注意)、そこの情報を隠されるなら、もしくは覚えていないなら、具体的な手順は指定できません。ありとあらゆるパターンを想定した手順を書くのも面倒ですし、面倒さに見合う価値があるとも思えません。
19
19
 
20
20
  使用しているOSとシェル、pyenvをインストールした方法と環境設定した方法を(全部じゃなくてもいいので)質問を編集して書いてもらえるといいかと思います。
21
+ もしくは、pyenvのバージョン(`pyenv -V`の結果)と、`which pyenv`でわかるpyenvの場所と、pyenvが有効な状態での`which python`の結果が分かればおおよその見当はつくと思います。(ただしpyenvがまともにインストールされていたならという前提で)

2

些細

2022/02/02 16:11

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -1,4 +1,4 @@
1
- 一度`eval "$(pyenv init -)"`が実行されると(pyenvをインストールした時にこれが実行されるように設定したはずです)、pyenvという名前のシェル関数が定義されるので`which pyenv`が関数の定義を表示するようになります。
1
+ 一度`eval "$(pyenv init -)"`が実行されると(pyenvをインストールした時にこれが実行されるように設定したはずです)、pyenvという名前のシェル関数が定義されるので`which pyenv`が関数の定義を表示するようになります。
2
2
  いったん
3
3
  ```shell
4
4
  disable -f pyenv
@@ -15,6 +15,6 @@
15
15
 
16
16
  ----
17
17
 
18
- 要するに、インストールした方法と、環境設定をした方法に依るので(インストールした方法と環境設定をした方法が別なことに注意)、そこの情報を隠される、もしくは覚えていないなら、具体的な手順は指定できません。ありとあらゆるパターンを想定した手順を書くのも面倒ですし、面倒さに見合う価値があるとも思えません。
18
+ 要するに、インストールした方法と、環境設定をした方法に依るので(インストールした方法と環境設定をした方法が別なことに注意)、そこの情報を隠されるなら、もしくは覚えていないなら、具体的な手順は指定できません。ありとあらゆるパターンを想定した手順を書くのも面倒ですし、面倒さに見合う価値があるとも思えません。
19
19
 
20
- 使用しているOSとシェル、pyenvをインストールし方法と環境設定した手順を(全部じゃなくてもいいので)質問を編集して書いてもらえるといいかと思います。
20
+ 使用しているOSとシェル、pyenvをインストールし方法と環境設定した方法を(全部じゃなくてもいいので)質問を編集して書いてもらえるといいかと思います。

1

追記

2022/02/02 16:06

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -1,8 +1,20 @@
1
- 一度`eval "$(pyenv init -)"`が実行されると(pyenvをインストールした時にこれが実行されるように設定したはずです)、pyenvという名前の漢字シェル関数が定義されるので、`which pyenv`が関数の定義を表示するようになります。
1
+ 一度`eval "$(pyenv init -)"`が実行されると(pyenvをインストールした時にこれが実行されるように設定したはずです)、pyenvという名前のシェル関数が定義されるので、`which pyenv`が関数の定義を表示するようになります。
2
2
  いったん
3
3
  ```shell
4
4
  disable -f pyenv
5
5
  ```
6
6
  を実行してシェル関数を無効化してから`which pyenv`してください。
7
7
 
8
+ ---
8
9
 
10
+ それでpyenvコマンドがどこにあるかは分かります。分かりますが、どうやって消すかはpyenvどうやってインストールしたのかに依ります。
11
+
12
+ pyenvでインストールしたpythonがどこにあるかは、pyenvの環境設定をした時にどこに置くと設定したのか、もしくは特に指定しなかったのか、に依ります。
13
+
14
+ pyenvの環境設定をした時にどういう設定をしたのかは、シェルが何か、pyenvをどうインストールしたのか、pyenvのバージョンがいくつなのかに依ります。
15
+
16
+ ----
17
+
18
+ 要するに、インストールした方法と、環境設定をした方法に依るので(インストールした方法と環境設定をした方法が別なことに注意)、そこの情報を隠されると、もしくは覚えていないなら、具体的な手順は指定できません。ありとあらゆるパターンを想定した手順を書くのも面倒ですし、面倒さに見合う価値があるとも思えません。
19
+
20
+ 使用しているOSとシェル、pyenvをインストールして方法と環境設定した手順を(全部じゃなくてもいいので)質問を編集して書いてもらえるといいかと思います。