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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

解決済

pyenvでpythonをinstallしたいです

abcdabcd
abcdabcd

総合スコア22

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

1回答

0グッド

0クリップ

1361閲覧

投稿2022/04/04 02:32

編集2022/04/04 06:54

実現したいこと

macにpythonの環境を構築中です.
pyenvでpython 3.8.5をinstallしたいです.

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

homebrewでpyenvをinstallしました.
その後,pyenv install 3.8.5を実行すると以下のように表示され,installに失敗しました.

terminal

1python-build: use openssl@1.1 from homebrew 2python-build: use readline from homebrew 3Downloading Python-3.8.5.tar.xz... 4-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz 5Installing Python-3.8.5... 6python-build: use readline from homebrew 7python-build: use zlib from xcode sdk 8WARNING: The Python readline extension was not compiled. Missing the GNU readline lib? 9ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? 10 11Please consult to the Wiki page to fix the problem. 12https://github.com/pyenv/pyenv/wiki/Common-build-problems 13 14 15BUILD FAILED (OS X 11.6.5 using python-build 20180424) 16 17Inspect or clean up the working tree at /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/python-build.20220404112711.33448 18Results logged to /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/python-build.20220404112711.33448.log 19 20Last 10 log lines: 21 fi 22Looking in links: /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp0j_fbrp3 23Processing /private/var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp0j_fbrp3/setuptools-47.1.0-py3-none-any.whl 24Processing /private/var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp0j_fbrp3/pip-20.1.1-py2.py3-none-any.whl 25Installing collected packages: setuptools, pip 26 WARNING: The script easy_install-3.8 is installed in '/Users/***/.pyenv/versions/3.8.5/bin' which is not on PATH. 27 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. 28 WARNING: The scripts pip3 and pip3.8 are installed in '/Users/***/.pyenv/versions/3.8.5/bin' which is not on PATH. 29 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. 30Successfully installed pip-20.1.1 setuptools-47.1.0

しかし,pyenv versionsとすると3.7.9は表示されます.

試したこと

GithubのTroubleshootingに従って,Command line tools for Xcodeのある状態でbrew install openssl readline sqlite3 xz zlibを実行した後に上記のエラーが出ていいます
また,端末はrosettaを使用して開いています.

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

macOS big Sur
バージョン 11.6.5
macbook air (M1, 2020)

当初のzshrcは以下のようになっています.

zshrc_old

1eval "$(pyenv init --path)" 2export PYENV_ROOT="$HOME/.pyenv" 3export PATH="$PYENV_ROOT/bin:$PATH" 4export PATH="/opt/homebrew/opt/bzip2/bin:$PATH" 5export PATH="/usr/local/bin:$PATH" 6eval "$(pyenv virtualenv-init -)" 7export PATH="/opt/homebrew/opt/sqlite/bin:$PATH" 8export LDFLAGS="-L/usr/local/opt/zlib/lib" 9export CPPFLAGS="-I/usr/local/opt/zlib/include" 10export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig" 11export LDFLAGS="-L/opt/homebrew/opt/readline/lib" 12export CPPFLAGS="-I/opt/homebrew/opt/readline/include" 13export PKG_CONFIG_PATH="/opt/homebrew/opt/readline/lib/pkgconfig"

<追記>修正した後のzshrcは以下になります.同様のエラーが出ています.

zshrc_new

1eval "$(pyenv init --path)" 2export PYENV_ROOT="$HOME/.pyenv" 3export PATH="$PYENV_ROOT/bin:$PATH" 4export PATH="/opt/homebrew/opt/bzip2/bin:$PATH" 5export PATH="/usr/local/bin:$PATH" 6eval "$(pyenv virtualenv-init -)" 7export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH" 8export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib" 9export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include" 10export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig" 11export PATH="/opt/homebrew/opt/sqlite/bin:$PATH" 12export LDFLAGS="-L/opt/homebrew/opt/sqlite/lib" 13export CPPFLAGS="-I/opt/homebrew/opt/sqlite/include" 14export PKG_CONFIG_PATH="/opt/homebrew/opt/sqlite/lib/pkgconfig" 15export LDFLAGS="-L/usr/local/opt/zlib/lib" 16export CPPFLAGS="-I/usr/local/opt/zlib/include" 17export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig" 18export LDFLAGS="-L/opt/homebrew/opt/readline/lib" 19export CPPFLAGS="-I/opt/homebrew/opt/readline/include" 20export PKG_CONFIG_PATH="/opt/homebrew/opt/readline/lib/pkgconfig" 21export CONFIGURE_OPTS="--with-openssl=-I/opt/homebrew/opt/openssl@3"

以下のような質問にはグッドを送りましょう

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

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

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

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

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

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

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

適切な質問に修正を依頼しましょう。

quickquip

2022/04/04 02:50 編集

rosetta2は有効になっていますか? (≒Intel用のバイナリを作ろうとしていますか? M1用のバイナリを作ろうとしていますか?)
meg_

2022/04/04 03:10 編集

> GithubのTroubleshootingに従って,Command line tools for Xcodeのある状態でbrew install openssl readline sqlite3 xz zlibを実行しましたが上手くいきませんでした. エラー内容(エラーメッセージ)は上記インストール前後で同じでしたか? > https://github.com/pyenv/pyenv/wiki/Common-build-problems CONFIGURE_OPTS="--with-openssl=<openssl install prefix>"は既に試されてそれでも駄目だったということでしょうか?
abcdabcd

2022/04/04 03:07 編集

quickquipさん ご返信ありがとうございます.ターミナルの情報を見る画面でrosettaを使用して開くにチェックを入れており,アクティビティモニタでもintelとなっており,rosetta2は有効になっているかと思います.初心者でintel用のバイナリorM1用のバイナリというのが分からないのですが,rosettaを有効にしなくてもinstall可能なのでしょうか
abcdabcd

2022/04/04 03:15 編集

meg_さん ご返信ありがとうございます.Command line tools for Xcodeのある状態でbrew install openssl readline sqlite3 xz zlibを実行した後に投稿したエラーが発生している状態です.brew install...の前後でエラー内容が同じだったかはあまり覚えていないですが,大きな変化はなかったと思います.申し訳ありません. >CONFIGURE_OPTS="--with-openssl=<openssl install prefix>"は既に試されてそれでも駄目だったということでしょうか? ありがとうございます.こちらは試していませんでした.確認してみます
abcdabcd

2022/04/04 03:48 編集

meg_さん export CONFIGURE_OPTS="--with-openssl=-I/opt/homebrew/opt/openssl@3"をzshrcに追記したのですが,あっていますでしょうか. これを設定した後も同じエラーが出ています

回答1

0

ベストアンサー

M1 macを使う上では、自分がM1バイナリ(Apple Siliconバイナリ)を使っている/使おうとしているのか、Intelバイナリを使っている/使おうとしているのかについて、自覚的に設定し、運用していないといけません。
(自覚なくM1バイナリだけ使っていられる段階ではまだないです)

rosettaを使って開いている=Intelバイナリを使おうとしている、かつ、homebrewでpyenvをインストールしたということなので、.zshrcは

eval "$(pyenv init --path)"

だけでいいです。Big Sur, Intelバイナリ, homebrewでインストールしたpyenv, 3.8.5という組み合わせならビルドできるはずです。
(pyenvの標準のインストールとは外れますが、動くかどうかだけを気にするなら十分なはずです)

それ以降の部分は、pyenvをhomebrewでインストールしなかった時の手順や、homebrewをrosettaをonにしていない環境で使う設定が混じっています。


追記

M1バイナリ
Homebrew, pyenvが/opt/homebrew下に入っている前提。

.zprofile

eval $(/opt/homebrew/bin/brew shellenv) eval "$(pyenv init --path)"

.zshrc

eval "$(pyenv init -)"

ターミナルを終了。Rosetta2を使用して開くのチェックを外す。ターミナルを起動。

shell

1pyenv install 3.8.13

(M1に対応したのは3.8.10)

Intelバイナリ
.zprofileと.zshrcを空にする。ターミナルを終了。Rosetta2を使用して開くのチェックを入れる。ターミナルを起動。

shell

1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2brew install pyenv

でHomebrewとpyenvを/usr/local下に入れる。

.zprofile

eval "$(pyenv init --path)"

.zshrc

eval "$(pyenv init -)"

ターミナルを再起動。

shell

1pyenv install 3.8.13

(Big Surに対応したのは3.8.5)

投稿2022/04/04 03:41

編集2022/04/04 06:46
quickquip

総合スコア10419

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

abcdabcd

2022/04/04 04:04

ご指摘ありがとうございます.zshrcにeval "$(pyenv init --path)"のみを記述しpyenv install 3.8.5を行いましたが,投稿と同様のエラーが出ました.申し訳ありませんが,ご助言いただけると幸いです
quickquip

2022/04/04 05:05

3.8.13 の方が無難かもとは思いました。 which brew の結果は /usr/local/bin/brew で合ってますか?
abcdabcd

2022/04/04 06:19 編集

>3.8.13 の方が無難かもとは思いました。 承知いたしました.ご助言ありがとうございます. >which brew の結果は /usr/local/bin/brew で合ってますか? which brewの結果は/opt/homebrew/bin/brewとなっていました.これが原因でしょうか. これはhomebrewのinstallの時に表示された以下に従ったものだと思います ``` ==> Next steps: - Run these two commands in your terminal to add Homebrew to your PATH: echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/****/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" - Run brew help to get started ``` 色々分からないことが多くてすいません.本当にご親切に対応していただきありがとうございます
quickquip

2022/04/04 06:12

> which brewの結果は/opt/homebrew/bin/brewとなっていました. これはきっと .zprofileに M1用のhomebrewの初期化が入っていますね。 これだと失敗します。
abcdabcd

2022/04/04 06:15

>これはきっと .zprofileに M1用のhomebrewの初期化が入っていますね。 少し理解できました./usr/local/bin/brewにしてみようと思います.
abcdabcd

2022/04/04 06:30 編集

quickqupさん /usr/local/bin/brewはないと表示されるのですが,これはhomebrewをinstallする段階ではM1用の設定になっていたということでしょうか. homebrewを入れ直すか,M1用に設定するということになるでしょうか M1用に設定する場合はzshrcにずらずらとexportの文が必要ということであっていますでしょうか
quickquip

2022/04/04 06:47 編集

> M1用に設定する場合はzshrcにずらずらとexportの文が必要ということであっていますでしょうか いいえ。要りません。
abcdabcd

2022/04/04 07:04

quickqupさん ご丁寧に説明ありがとうございます. which brewで/opt/homebrew/bin/brewと表示され, rosettaのチェックは外し, zprofileに   eval $(/opt/homebrew/bin/brew shellenv)   eval "$(pyenv init --path)" を記述し, zshrcに   eval "$(pyenv init -)" を記述し, ターミナルを再起動して,pyenv install 3.8.10を実行しましたが,以下のようなこれまでと同様のエラーが発生しました.申し訳ありませんが,何かご指摘ありますでしょうか python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.8.10.tar.xz... -> https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz Installing Python-3.8.10... python-build: use readline from homebrew python-build: use zlib from xcode sdk WARNING: The Python readline extension was not compiled. Missing the GNU readline lib? ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? Please consult to the Wiki page to fix the problem. https://github.com/pyenv/pyenv/wiki/Common-build-problems BUILD FAILED (OS X 11.6.5 using python-build 20180424) Inspect or clean up the working tree at /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/python-build.20220404160043.81982 Results logged to /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/python-build.20220404160043.81982.log Last 10 log lines: ./python.exe -E -m ensurepip \ $ensurepip --root=/ ; \ fi Looking in links: /var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp2yomq94h Processing /private/var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp2yomq94h/setuptools-56.0.0-py3-none-any.whl Processing /private/var/folders/h_/8vnp2dt96s9c3g0_0k_yrty40000gn/T/tmp2yomq94h/pip-21.1.1-py3-none-any.whl Installing collected packages: setuptools, pip WARNING: The scripts pip3 and pip3.8 are installed in '/Users/***/.pyenv/versions/3.8.10/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed pip-21.1.1 setuptools-56.0.0
quickquip

2022/04/04 07:28

/opt/homebrew を全部消してHomebrewのインストールからやり直すんですかね…… brew reinstall autoconf openssl@1.1 pkg-config readline pyenv が先か……てせもそれでpythonが入れられてもhomebrew全体が信用できないから結局Homebrewのインストールからやり直すことになるのか…… という感じです。 一応考えているのは /opt/homebrew にIntelバイナリが入る可能性があるのか? という疑問なんですが、例えば、 file /opt/homebrew/Cellar/readline/*/lib/libreadline.dylib した時末尾のCPUアーキテクチャは arm64 でしょうか? x86_64 でしょうか? それともファイルがないでしょうか?
abcdabcd

2022/04/04 07:33

quickquipさん ありがとうございます,無理そうであればhomebrewのインストールからやり直してみようと思います. >file /opt/homebrew/Cellar/readline/*/lib/libreadline.dylib はarm64でした
quickquip

2022/04/04 07:47 編集

ファイルは"ある"んですね……。この状況はみたことないです (Ubuntuなどで本当にライブラリを入れてない時に見るエラーです)
abcdabcd

2022/04/04 07:46

quickquipさん 色々とご確認ありがとうございます. homebrewを入れ直してみようと思います.
abcdabcd

2022/04/04 08:54

quickquipさん rosettaを使用せずにhomebrewをインストールし直し,ご助言あった通りにzprofileとzshrcを設定したところ3.8.10が入りました!!! m1とintellが混ざっていたことが原因であることを知れてよかったです. 本当にご丁寧に説明していただきありがとうございました.

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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