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

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

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

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

MacOS(OSX)

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

Python

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

Q&A

解決済

1回答

5294閲覧

pyenvでPythonをインストールできない(mac)

QitQut

総合スコア2

Python 3.x

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

MacOS(OSX)

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

Python

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

0グッド

0クリップ

投稿2021/05/15 03:57

編集2021/05/15 13:36

前提・実現したいこと

pyenv は Homebrewでインストールしました。
pyenvでPythonをインストールしたいです。
pyenv install 3.9.4を実行すると以下のようなエラーになりました。

mkdir: /usr/local/opt/zlib/lib: Permission denied

で検索しましたが、解決方法がわかりませんでした。
よろしくお願いいたします。

環境

macOS big sur 11.3.1
Macbook Air (M1,2020)
チップ Apple M1
(ターミナルで「Rossetaを使用して開く」にテェックしています。)

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

python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.9.4.tar.xz... -> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz Installing Python-3.9.4... mkdir: /usr/local/opt/zlib/lib: Permission denied BUILD FAILED (OS X 11.3.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/sb/mv3r1xbx3fbb4fm4b6777gg00000gn/T/python-build.20210515123109.74731 Results logged to /var/folders/sb/mv3r1xbx3fbb4fm4b6777gg00000gn/T/python-build.20210515123109.74731.log Last 10 log lines: /var/folders/sb/mv3r1xbx3fbb4fm4b6777gg00000gn/T/python-build.20210515123109.74731 ~ /var/folders/sb/mv3r1xbx3fbb4fm4b6777gg00000gn/T/python-build.20210515123109.74731/Python-3.9.4 /var/folders/sb/mv3r1xbx3fbb4fm4b6777gg00000gn/T/python-build.20210515123109.74731 ~

試したこと

1 Xcodeをインストール

$ xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates

2 Homebrewをインストール

$ brew doctor Your system is ready to brew.

3 pyenvインストール

$ pyenv --version pyenv 1.2.27

4quickquipさんから教えていただいて実行したコマンドとその結果です。

$ brew --prefix /opt/homebrew $ /usr/bin/uname -m arm64

/optを/usr/localに移せばいいのでしょうか?

参照
https://qiita.com/crankcube/items/15f06b32ec56736fc43a

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

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

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

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

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

quickquip

2021/05/15 04:17 編集

CPUはなんでしょうか? M1の場合は"ターミナルでRosettaを有効にしているか"も合わせて質問を編集して追記してください。 URLに載っている通り、pyenv は Homebreでインストールしたと考えていいですか? (質問するのに「参考した記事」は回答のあてになりません。「あなたがやったこと」が必要です) brew doctor して、Homebrewに異常がないか確認した方がよいと思います。解決方法もだいたいはその結果に書いてあるはずです。
technocore

2021/05/15 04:19

>mkdir: /usr/local/opt/zlib/lib: Permission denied ディレクトを作る権限がないというエラーが書いてあります。 >色々調べたのですが、 どんな調べ方をしたのでしょうか?
QitQut

2021/05/15 05:14 編集

$ brew list ... pyenv zlib readline ... とzlibがあるのですが、 $cd /usr/local/ $ ls bin lib となり、/usr/local/opt/zlib/libのoptがありません。 chmodで権限を変えようと思ったのですが、この方法は誤りでしょうか?
quickquip

2021/05/15 13:15 編集

まるで homebrew が /usr/local 下にないのに /usr/local を使おうとしているみたいに見えますね。 brew --prefix と /usr/bin/uname -m の結果は載せられますか。(homebrewのインストール先と、Rosettaが有効かどうかを確認できるコマンドです)
guest

回答1

0

ベストアンサー

とりあえず、Rosettaを使用していないのは確定です。
HomebrewもM1用のものが入って動いています。

不明なことは
なぜpyenvがzlibを見つけられないか
なぜpyenvが/usr/local以下を使おうとするか

確かめてないことは
pyenvがどこにあるものが動いているか

です。


とりあえずpyenvがどこのzlibを使うかの決定は
https://github.com/pyenv/pyenv/blob/debf1abd8bd624ba8f9f902f00e5c9098e99dede/plugins/python-build/bin/python-build#L1509
の前後から分かるので

plain

1xcrun --show-sdk-path

を確認するのがよさそうです。
(今はXcode付属のzlibが優先して使われるはずなので、これがおかしいのだろうと想像できます)


/optを/usr/localに移せばいいのでしょうか?

に関してですが、M1向けのHomebrewのインストール先が /opt/homebrewで、Intel向けのHomebrewのインストール先が/usr/localとなっています。
M1向けのバイナリを/usr/localに入れると混乱するのでやめましょう。

やるなら

  1. ターミナルの設定は今のままでHomebrewのアンインストール
  2. ターミナルの設定をRosettaを使う用に変更してターミナルを再起動
  3. /usr/bin/uname -m の確認
  4. Homebrewのインストール(ここでインストール先が/usr/localになるはず

でしょう。
pyenvがおかしいことを放っておいて、この手順を進めるかは悩ましいところです。

投稿2021/05/15 14:23

編集2021/05/15 14:24
quickquip

総合スコア11038

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

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

QitQut

2021/05/16 02:15

$ xcrun --show-sdk-path /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk $ /usr/bin/uname -m x86_64 となりました。まだ、(同じエラーで)インストールできませんがもう少し自分で調べてみようと思います。ご回答ありがとうございました。自分が何を調べたら良いかがわかった気がします。
quickquip

2021/05/16 02:20

pyenvがzlibに/usr/local/opt/zlibを選ぶのがおかしいのですよね…… (ある時からXcode付属のzlibを優先するようになったので)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問