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

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

新規登録して質問してみよう
ただいま回答率
85.35%
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

解決済

2回答

5518閲覧

pyenvを使ってpython3.8のダウンロードをしたい。

BeautyAxe

総合スコア1

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/11/21 00:13

編集2021/11/21 04:18

前提・実現したいこと

Macのターミナル上でpyenvを使い、python 3.8のインストールをしたいです。
Anaconda等の仮想環境は構築しない方法でお願いいたします。

ネットで検索し、さまざまな方法を試してみましたが、実現できません。
何か方法はありますでしょうか?
よろしくお願いいたします。

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

pyenv versions
を実行してもダウンロードしたいバージョンがインストールされていません。
他のバージョンも試してみましたが同様のエラーメッセージが表示され、インストールできませんでした。

python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.8.12.tar.xz... -> https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz Installing Python-3.8.12... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 12.0.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/q6/wkm5bmv52xzccc6d486zkxjw0000gn/T/python-build.20211121082937.58259 Results logged to /var/folders/q6/wkm5bmv52xzccc6d486zkxjw0000gn/T/python-build.20211121082937.58259.log Last 10 log lines: "_libintl_textdomain", referenced from: _PyIntl_textdomain in libpython3.8.a(_localemodule.o) _PyIntl_textdomain in libpython3.8.a(_localemodule.o) ld: symbol(s) not found for architecture x86_64 ld: symbol(s) not found for architecture x86_64 clang: clang: error: error: linker command failed with exit code 1 (use -v to see invocation) linker command failed with exit code 1 (use -v to see invocation) make: *** [Programs/_testembed] Error 1 make: *** Waiting for unfinished jobs.... make: *** [python.exe] Error 1

###該当のソースコード

pyenv install --list pyenv install 3.8.12 python versions #ここで3.8.12が表示されていません

試したこと

・Homebrewのアップデート
$ brew update

・pyenvのアップデート
$ brew upgrade

https://qiita.com/koooooo/items/b21d87ffe2b56d0c589b
こちらのサイトを参考に
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html
こちらのサイトを参考に
$ arch -x86_64 uname -m
$ arch -x86_64 zsh
$ cd /opt
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

https://techsviewer.com/how-to-install-python-on-mac/
こちらのサイトを参考に
$ brew install python
$ cd
$ nano ~/.bash
dot fileの中で
alias python=python3
を記述
ターミナル上で
$ source ~/.bash

https://www.takapy.work/entry/2019/02/11/161419
こちらのサイトを参考に
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

https://child-programmer.com/pe-bs-2021/
こちらのサイトを参考に
$ arch -arm64 brew reinstall zlib bzip2
$ CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.8.12 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch?full_index\=1)

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

「実行環境」
・MacBook Air(M1, 2020)
・チップ Apple M1
・macOS Monterey v12.0.1
・ターミナルはRosetta2を使用しています
・ターミナル:zsh
・Home-brew v3.3.4(M1対応です)
・pyenv v2.2.0

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

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

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

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

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

quickquip

2021/11/21 01:22 編集

CPUの情報を追記しましょう。 M1搭載なら、Rosetta2を使用しているかいないか、HomebrewがM1向けなのかそうでないのか、あたりも書いてください。 "参考にした記事"を挙げていますが、それらが回答者にとって役に立つ訳ではありません。 回答者に必要なのはあくまで質問者さんの環境と、それらを読んで質問者さんが何をしたのか、という情報です。 "参考にした記事"を挙げているから推測できるでしょ、みたいなのは困惑します。(実際推測できるとしても回答には
quickquip

2021/11/21 01:45 編集

3.8をM1向けバイナリでインストールしようとして失敗している、が一番蓋然性が高い気はしますが。(M1 Macが手元にないのでこういうエラーになるのか検証できなくて……)
BeautyAxe

2021/11/21 04:19

丁寧なご指摘ありがとうございます。記載不足で申し訳ありません。 ご指摘をもとに更新いたしましたので、ご確認をお願いいたします。
quickquip

2021/11/21 06:15 編集

> ターミナルはRosetta2を使用しています > Home-brew v3.3.4(M1対応です) この2行が矛盾しています。 Rosetta2を使用しているならHomebrew がM1向けを使っていてはおかしいでしょう。(というかこれが正しいならこれが原因では) Homebrewは/opt/homebrew配下にありますか? /usr/local配下にありますか? (書いてあるのを見ると/opt/homebrew配下に入れているようですが本当にこれを使っていますか?) which brew で確認してみてください。 希望としてIntelバイナリでやりたいんですか? M1バイナリでやりたいんですか? そこを書きましょう。
quickquip

2021/11/21 06:13

まあひどいことを色々やっているので全部削除した方が早い可能性もありますが。
BeautyAxe

2021/11/21 12:09 編集

丁寧に説明してくださり、ありがとうございます。Rosetta2について深く理解しておりませんでした。 which brewをしたところHomebrewはusr/local/bin配下にありました。これはRosetta2を使用したターミナル上でHomebrewをダウンロードしたからではないかと理解しましたが、正しいでしょうか? しかし、[試したこと]に記載したものはM1用のサイトを主に参考にしたため、それらのどれかが影響して今回のようなエラーが発生したのではないかと考えました。 M1バイナリで実行したいと考えておりますので、quickquipさんのおっしゃる通り一度全て削除してもう一度はじめからやり直そうと思います。
quickquip

2021/11/21 12:54

> Homebrewはusr/local/bin配下にありました。 やったことの中に /opt/homebrew にファイルを展開しているように書かれていますが、でも"それは使ってない"からそうなってるのですね。 pyenvも同じで、Homebrewで入れたものの他に自分で展開していますが、でも"それは使ってない"のかもしれません。
BeautyAxe

2021/11/21 13:28

仰る通りだと思います。 私としてはM1バイナリで作業を進めているつもりでしたので、勘違いしておりました。
guest

回答2

0

ベストアンサー

投稿2021/11/21 01:03

ppaul

総合スコア24670

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

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

BeautyAxe

2021/11/21 04:53

こちらの記事を参考にすると無事にダウンロードできました。ありがとうございます。 しかし、なぜ今までインストールできなかったか理由がわかりません。もしよろしければご教授いただけませんか。
ppaul

2021/11/21 07:28

M1はarmアーキテクチャのCPUで、x86-64命令のアプリケーションはエミュレーションソフトウェア「Rosetta 2」で行います。 pyenvはPythonをインストールする場合にソースコードからコンパイルするのですが、そのときにarm向けのコンパイルをするかx86-64向けのコンパイルをするかと、arm向けのライブラリをリンクするか、x86-64向けのライブラリをリンクするかがそろっていないと、ご質問のようなエラーが起こります。
BeautyAxe

2021/11/21 12:14

ご説明ありがとうございます。よく理解できました。 quickquipさんのご指摘にもありましたが、ターミナルの設定で「Rosettaを使用して開く」にチェックを付けてHomebrewやpyenv等のインストールを行なったにもかかわらず、[試したこと]ではM1対応の資料のコードを実行していたためだということですね。 quickquipさん、techcoreさん、ppaulさん皆様ご教授いただき誠にありがとうございます。早く返信をしていただいたppaulさんをベストアンサーにさせていただきます。
guest

0

こちらもM1(Monterey)ですが、普通なら問題ないです。

~ $ uname -m arm64 ~ $ pyenv install 3.8.12 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.8.12.tar.xz... -> https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz Installing Python-3.8.12... python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.8.12 to /Users/owner/.pyenv/versions/3.8.12 ~ $ pyenv versions system 3.10.0 3.8.12 * 3.9.7 (set by /Users/owner/.pyenv/version)

ld: symbol(s) not found for architecture x86_64

ld: symbol(s) not found for architecture x86_64

M1(Apple Silicon)なのに、Intelアーキテクチャ(x86_64)を参照しようとしています。
環境構築の手順に誤りがあるのでは?
また、とりあえずCommand Line Toolsはバージョンアップしてみましょう。

投稿2021/11/21 02:28

technocore

総合スコア7337

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

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

BeautyAxe

2021/11/21 04:26

ご指摘の通り $ uname -m を実行したところ x86_64 と表示されました。 環境構築をやり直します、ありがとうございます。 Command Line Toolsについてもご指摘ありがとうございます。 $ softwareupdate --list を実行したところ Software Update Tool Finding available software No new software available. と表示されたため、バージョンアップはできているようです。
technocore

2021/11/21 04:30

>$ uname -mを実行したところx86_64 rosetta2(互換モード)になってますよ。 環境と手順を見直しましょう。
BeautyAxe

2021/11/21 04:35

先ほどご指摘いただいたコードはtechnocoreさんの環境下で実行した正解例かと存じたのですが、technocoreさんの元でもx86_64となるということでしょうか?
BeautyAxe

2021/11/21 04:57

ppaulさんの記事を参考にするとインストールできました。しかし、なぜ今までインストールできなかったか理由がわかりません。もしお時間ありましたらご教授いただけませんか? また、今回は3.8.12をダウンロードできたので解決しましたが、今後のことを考えると環境を構築し直したほうがよろしいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問