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

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

ただいまの
回答率

90.84%

  • Python

    6346questions

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

  • Python 3.x

    4829questions

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

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 639

aaaaa22222

score 2

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

/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 -)"


です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

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

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

brew uninstall python

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/17 16:30

    $PATHで上書きされている場合でも競合することがあるのでしょうか。

    手元の環境でhomebrewからインストールしたpythonとpyenvを使用していますが、上記の現象を再現できませんでした。

    不思議です。

    キャンセル

  • 2017/12/17 17:18

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

    キャンセル

  • 2017/12/17 18:22

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

    キャンセル

  • 2017/12/17 20:37

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

    キャンセル

  • 2017/12/18 13: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
    を実行していいのでしょうか?

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/16 17:48

    https://qiita.com/ta_ta_ta_miya/items/e24394c6b0022405a126
    これをみていただければ
    /usr/local/bin/pyenv
    となるのが正解だと分かると思いますが・・・・
    私の解釈間違いだったらごめんなさい

    キャンセル

  • 2017/12/16 17:55

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

    キャンセル

  • 2017/12/16 18:44

    https://qiita.com/ta_ta_ta_miya/items/e24394c6b0022405a126の
    > ~/.bash_profileで設定したはずの…

    のあたりを実行されましたか?

    キャンセル

  • 2017/12/17 12:48

    はいそうです!

    キャンセル

  • 2017/12/17 13:19

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

    キャンセル

  • 2017/12/17 13: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

    キャンセル

  • 2017/12/17 13:25

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

    キャンセル

  • 2017/12/17 13:29

    /Users/(username)/.pyenv/shimsが先頭に来ていますね。

    pyenv versions
    の出力は何になっていますか?

    キャンセル

  • 2017/12/17 13:39

    system
    * 3.6.3 (set by /Users/(username)/.pyenv/version)

    です!

    キャンセル

  • 2017/12/17 13:41

    それだと
    which python
    した結果は
    /Users/(username)/.pyenv/shims/python
    になっていませんか?

    もしそうであるのなら正しくpyenvでインストールしたpython3.6を使用できます。

    キャンセル

  • 2017/12/17 13:44

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

    キャンセル

  • 2017/12/17 13:51

    やっぱり
    which python
    した結果は
    /usr/local/bin/python
    です...

    ちなみに
    python -V
    の結果は、以前pyenvを入れる前にダウンロードした
    Python 2.7.14
    です

    キャンセル

  • 2017/12/17 14:06

    例えば、~/.pyenv/shimsにpythonの実行ファイルはありますか?
    なければ
    pyenv rehash
    をしてみても同じ結果になりますか?

    pyenvのインストール方法はこちらが詳しいです。
    https://qiita.com/1000ch/items/93841f76ea52551b6a97

    キャンセル

  • 2017/12/17 15: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
    この中に実行ファイルはありますか?

    キャンセル

  • 2017/12/17 15: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
    となります。

    キャンセル

  • 2017/12/17 15:17

    python3とpython3.6ですね。
    python3はpython3.6のシンボリックリンクになっているはずです。

    pythonで使いたいのであれば、
    ln -fs /Users/(uesrname)/.pyenv/shims/python3 /Users/(uesrname)/.pyenv/shims/python
    とすればよいのですが、どうしてそのように振る舞っているのかは不明です。

    キャンセル

  • 2017/12/17 15: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
    となります...
    これはどう対処すればいいのでしょうか

    キャンセル

  • 2017/12/17 15:37

    やはり、shims内を手動でいじるのはよくないみたいですね。

    .bashrcに
    alias python=python3
    を追加するという選択肢があります。

    ちなみにpyenvのバージョンは何になっていますか?
    pyenv --version

    キャンセル

  • 2017/12/17 15:37

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

    キャンセル

  • 2017/12/17 15:38

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

    キャンセル

  • 2017/12/17 15:51

    pyenvのバージョンは
    pyenv 1.2.0

    キャンセル

  • 2017/12/17 15:51

    です

    キャンセル

  • 2017/12/17 15: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
    と表示されました

    キャンセル

  • 2017/12/17 15:57

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

    キャンセル

  • 2017/12/17 16:23

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

    キャンセル

  • 2017/12/17 16:25

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

    キャンセル

  • 2017/12/17 16:28

    それと
    https://qiita.com/1234224576/items/11ad3509fe4b0a9a33ed
    にも該当しませんか。

    キャンセル

  • 2017/12/17 17:28

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

    キャンセル

  • 2017/12/17 17:30

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

    キャンセル

  • 2017/12/17 17:35

    python3の方で一応使えますが、なんだかすっきりしませんね。

    pyenvはhomebrew経由でインストールされましたか?

    pyenv local --unset
    を実行してもうまく行きませんか。

    キャンセル

  • 2017/12/17 18:02

    覚えてないです、すいません。

    うまくいきませんでした.....

    キャンセル

  • 2017/12/17 18:16

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

    キャンセル

  • 2017/12/17 18:21

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

    キャンセル

  • 2017/12/17 18:26

    仰る通りです。

    そちらでインストールしたpyenvは本来意図しているものとは異なる挙動をしています。
    このような問題がおきた際には、一度アンインストールしてから再インストールすることですんなり解決することがあります。

    brew uninstall pyenv
    を行ってから、
    brew install pyenv
    を再度インストールすることでうまくいくかもしれません。

    それか、python3でお使いいただくこともできるかと思われます。

    キャンセル

  • 2017/12/18 13:19

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

    キャンセル

  • 2017/12/18 15: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コマンドを使用するのが一番楽かもしれません。

    キャンセル

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

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python

    6346questions

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

  • Python 3.x

    4829questions

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