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

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

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

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

Python

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

Q&A

2回答

674閲覧

Mac (macOS High Sierra 10.13.2)でpyenvを使ってpythonのバージョンの切り替えができない。

aaaaa22222

総合スコア9

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2017/12/16 07:57

編集2017/12/17 04:21

pyenvでpython2.7.14からpython3.6.3に切り替えたいのですが、うまくいきません。
調べたところ、
which python と打って

command

1/usr/local/bin/python

と出てくるのがおかしいみたいです。
which pythonと打って

/usr/local/bin/pyenv

と出てくるようにするのにはどうしたらいいですか?
ちなみに.bash_profileの中身は

export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"

です。

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

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

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

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

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

guest

回答2

0

以前、brew で python をインストールしていないでしょうか?

そうであれば、brew でインストールした python をアンインストールすると 解決するかもしれません。(/usr/local/bin/python を使っていない場合)

brew uninstall python

投稿2017/12/17 07:24

編集2017/12/17 07:48
CHERRY

総合スコア25171

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

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

mkgrei

2017/12/17 07:30

$PATHで上書きされている場合でも競合することがあるのでしょうか。 手元の環境でhomebrewからインストールしたpythonとpyenvを使用していますが、上記の現象を再現できませんでした。 不思議です。
CHERRY

2017/12/17 08:18

うちの環境でも共存できているんで、正直よくわからないのですが...
aaaaa22222

2017/12/17 09:22

brewでpythonをインストールかどうか定かではないので、 確かめる方法を教えてくれませんか?
CHERRY

2017/12/17 11:37

brew list で、brewでインストール済みのリストが表示されると思います。
aaaaa22222

2017/12/18 04:20

brew uninstall python を実行すると、 Error: Refusing to uninstall /usr/local/Cellar/python/2.7.14 because it is required by opencv 3.3.1_1, which is currently installed. You can override this and force removal with: brew uninstall --ignore-dependencies python とでてきます、 強制的に brew uninstall --ignore-dependencies python を実行していいのでしょうか?
guest

0

pyenvはpythonじゃないので、無理ですね。
pyenvの使い方は、
https://qiita.com/twipg/items/75fc9428e4c33ed429c0

投稿2017/12/16 08:28

mkgrei

総合スコア8560

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

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

mkgrei

2017/12/16 08:55

たぶん、 which python → /usr/bin/python のミスということを鑑みて… パスが途中から省略されていますね。
mkgrei

2017/12/17 04:19

echo $PATH の出力を追記していただけますか?
aaaaa22222

2017/12/17 04:25

/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/bin:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/bin:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/bin:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/bin:/Users/(ユーザー名、個人情報なので記載できません。)/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/Library/TeX/texbin
aaaaa22222

2017/12/17 04:25

読みづらいですがすいません
mkgrei

2017/12/17 04:29

/Users/(username)/.pyenv/shimsが先頭に来ていますね。 pyenv versions の出力は何になっていますか?
aaaaa22222

2017/12/17 04:39

system * 3.6.3 (set by /Users/(username)/.pyenv/version) です!
mkgrei

2017/12/17 04:41

それだと which python した結果は /Users/(username)/.pyenv/shims/python になっていませんか? もしそうであるのなら正しくpyenvでインストールしたpython3.6を使用できます。
mkgrei

2017/12/17 04:44

試しに python -V をすると指定したバージョンになっているはずです。
aaaaa22222

2017/12/17 04:51

やっぱり which python した結果は /usr/local/bin/python です... ちなみに python -V の結果は、以前pyenvを入れる前にダウンロードした Python 2.7.14 です
mkgrei

2017/12/17 05:06

例えば、~/.pyenv/shimsにpythonの実行ファイルはありますか? なければ pyenv rehash をしてみても同じ結果になりますか? pyenvのインストール方法はこちらが詳しいです。 https://qiita.com/1000ch/items/93841f76ea52551b6a97
aaaaa22222

2017/12/17 06:15

cd ~/.pyenv/shims ls を実行して以下の結果が得られました 2to3 pydoc3.6 python3.6m 2to3-3.6 python3 python3.6m-config idle3 python3-config pyvenv idle3.6 python3.6 pyvenv-3.6 pydoc3 python3.6-config この中に実行ファイルはありますか?
aaaaa22222

2017/12/17 06:16

pyenv rehash として cd ~/.pyenv/shims ls 同じく 2to3 pydoc3.6 python3.6m 2to3-3.6 python3 python3.6m-config idle3 python3-config pyvenv idle3.6 python3.6 pyvenv-3.6 pydoc3 python3.6-config となります。
mkgrei

2017/12/17 06:17

python3とpython3.6ですね。 python3はpython3.6のシンボリックリンクになっているはずです。 pythonで使いたいのであれば、 ln -fs /Users/(uesrname)/.pyenv/shims/python3 /Users/(uesrname)/.pyenv/shims/python とすればよいのですが、どうしてそのように振る舞っているのかは不明です。
aaaaa22222

2017/12/17 06:30

ln -fs /Users/(uesrname)/.pyenv/shims/python3 /Users/(uesrname)/.pyenv/shims/python を実行したあと which python を実行した結果 /Users/(username)/.pyenv/shims/python になりました! しかし pyenv global 3.6.3 を実行した後 python -V を実行すると pyenv: python: command not found となります... これはどう対処すればいいのでしょうか
mkgrei

2017/12/17 06:37

やはり、shims内を手動でいじるのはよくないみたいですね。 .bashrcに alias python=python3 を追加するという選択肢があります。 ちなみにpyenvのバージョンは何になっていますか? pyenv --version
aaaaa22222

2017/12/17 06:37

もしかしたら問題ないのでしょうか?
mkgrei

2017/12/17 06:38

それに加えて一度シンボリックリンクを削除してください。 rm /Users/(username)/.pyenv/shims/python
aaaaa22222

2017/12/17 06:51

pyenvのバージョンは pyenv 1.2.0
aaaaa22222

2017/12/17 06:55

.bashrcに alias python=python3 を追加し、 rm /Users/(username)/.pyenv/shims/python を実行した後 pyenv global 3.6.3 python -V を実行したところ -bash: /Users/(username)/.pyenv/shims/python: No such file or directory と表示されました
mkgrei

2017/12/17 06:57

aliasを追加した後に、ターミナルを開き直すか、bashを実行する必要があります。
aaaaa22222

2017/12/17 07:23

ターミナルを開き直した後、 pyenv global 3.6.3 python -V を実行すると python 2.7.14 となってしまいます
mkgrei

2017/12/17 07:25

python3 -V はうまく動きますか?
aaaaa22222

2017/12/17 08:28

python3 -V はうまく動きました
aaaaa22222

2017/12/17 08:30

該当しませんでした....
mkgrei

2017/12/17 08:35

python3の方で一応使えますが、なんだかすっきりしませんね。 pyenvはhomebrew経由でインストールされましたか? pyenv local --unset を実行してもうまく行きませんか。
aaaaa22222

2017/12/17 09:02

覚えてないです、すいません。 うまくいきませんでした.....
mkgrei

2017/12/17 09:16

brew list | grep pyenv すると、homebrew経由でインストールしたかどうかを確認できます。
aaaaa22222

2017/12/17 09:21

pyenv と表示されたのでhomebrew経由ってことでいいんですかね?
mkgrei

2017/12/17 09:26

仰る通りです。 そちらでインストールしたpyenvは本来意図しているものとは異なる挙動をしています。 このような問題がおきた際には、一度アンインストールしてから再インストールすることですんなり解決することがあります。 brew uninstall pyenv を行ってから、 brew install pyenv を再度インストールすることでうまくいくかもしれません。 それか、python3でお使いいただくこともできるかと思われます。
aaaaa22222

2017/12/18 04:19

アンインストールして再インストールしましたが、うまく行きませんでした、、、
mkgrei

2017/12/18 06:05

Linux上ではpythonを実行した際にpython2.xが暗黙に求められるケースがあるので、python3.xはpython3として、それに伴うpipはpip3としてインストールされることが一般的です。 ただ、Macではそのようなことはなくpyenvでpython3.xをインストールした際にpythonとして実行できるようになっているというのが認識でした。 もしかしたら、pyenvのバージョンが新しくなることによってLinuxと同じような振る舞いをするように仕様が変更されたのかもしれませんが、検証のためにシステムを再インストールすることができない状況なので、真実は闇の中です。 1つ疑問があるのはpythonのエイリアスがうまく動かないと仰られたことについてです。 python3が実行できるのであれば、 alias python=python3 と~/.bashrcに記述することによって、pythonがうまく動作するべきでした。 このやり方の問題点はpyenvでpython2.xを設定した時に、pythonコマンドが動作しない可能性があるということです。 謎が多くありますが、Linuxを使っている気分でpython3コマンドを使用するのが一番楽かもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問