🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MacOS(OSX)

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

Python

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

Q&A

解決済

3回答

661閲覧

公式配布のPythonをバージョン管理する方法はありますか?

harumaky

総合スコア13

MacOS(OSX)

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

Python

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

0グッド

0クリップ

投稿2021/03/19 18:19

質問

MacOSX BigSurで、公式Python.orgでダウンロードした複数のpythonをpyenvのように管理する方法はありますか?

経緯

Mac OSX BigSurにアップデートしてから、pyenvでの新しいpythonのインストールが失敗続きで、途方にくれていました。

なんとかpyenv githubのissueを参照しながらパッチを挿入してインストールできたものの、python -m tkinterでそのようなモジュールが存在しないと怒られるなどの問題が残るようだったので、仕方なく公式Python.orgでpythonを複数ダウンロードしました。(こちらは全て正常にビルドされました)

しかし、pyenvと異なり、コマンドでpythonではなくpython3.6python3.9などと、必ずバージョンを打たなくてはいけませんし、pip ~python3.6 -m pip ~としなければなりません。

そこで、pyenvと同じような働きをしつつ、公式ダウンロードのPythonを参照するものがないかと思った次第です。

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

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

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

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

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

otn

2021/03/20 03:15

やりたいことは、 ・ディレクトリ毎に違うPythonを使い分けたい(pyenv localの機能が必要) ・自分でバージョンを切り替えつつ使いたい(pyenv globalの機能だけあれば十分でlocal機能は不要) のどちらでしょうか?
hentaiman

2021/03/20 03:30

公式に拘る理由は?
guest

回答3

0

Macを使ったことがないので、出来るかどうかはわかりませんが、
以前、CentOSでpythonをビルドしていたとき、
~/.pyenv/versionsの下に自分でbuildしたpythonのディレクトリへのシンボリックリンクを入れておくことで、pyenvを使ってインストールしたのではないpythonもpyenvで切り替えることができました。
試してみてください。

投稿2021/03/20 01:12

ppaul

総合スコア24670

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

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

harumaky

2021/03/20 05:35

なるほど、確かにそこにシンボリックリンクしておけばいけそうですね。 参考になりました。 ありがとうございます! ベストアンサーにしたいところなのですが、quickquipさんの回答が私の問題の本質を解決してくださったので、そちらをBAとさせていただきました。
guest

0

ベストアンサー

直接の回答ではありません。

Mac OSX BigSurにアップデートしてから、pyenvでの新しいpythonのインストールが失敗続きで、途方にくれていました。

なんとかpyenv githubのissueを参照しながらパッチを挿入してインストールできたものの、

の部分です。
該当のissueでは3.8.3をインストールしようとしていますが、今となっては"インストールしようとしているものが古いだけです"で片付きます。

"パッチを挿入してインストールできた"と言っているそのパッチは
https://github.com/python/cpython/commit/8ea6353f60625c96ce96588c70ff24a77f8c71f9
のことで、これが提出されたのは2020年の6月です。

だいたいの人は、これ以降にリリースされたマイナーバージョンを選択すればそれで十分なはずです。
3.9系なら3.9.1 以降
3.8系なら3.8.7 以降
3.7系なら3.7.8 以降
を選択すればいいのに、無理に古いものをいれようとして困っているだけにしか見えません。

もちろん、ライブラリの開発者や今動いているソフトウェアのサポートなどで古いバージョンをピンポイントで入れなければいけない人はいるでしょう。しかしBigSurで素直にビルドできないPythonのバージョンをBigSurでサポートしたいのか? とも思います。

追記
質問者さんがBigsur登場当初に困っていた、という話は理解できます。
その頃は面倒でしたが今はそうではないです改善されています、という回答です。


python -m tkinterでそのようなモジュールが存在しないと怒られるなどの問題が残る

これも昔はその通りでした。
tkinterを使いたい場合pyenvでは難しかったのですが、今は特別なにもしなくてもtkinterが使える状態でビルドされるはずです。

投稿2021/03/20 03:19

編集2021/05/13 04:33
quickquip

総合スコア11231

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

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

quickquip

2021/03/20 03:22

3.9系なら3.9.1 以降 3.8系なら3.8.7 以降 3.7系なら3.7.8 以降←この部分おおざっぱに見ただけなので間違いが混じっているかもしれません。
harumaky

2021/03/20 05:30

回答ありがとうございます。 ご指摘の通り、適切なマイナーバージョンを選んでインストールすることができました(3.7.10 / 3.8.8 をインストールできました。) 無理に古いものをいれようとして困っているだけ とありましたが、全くその通りでした。
guest

0

初学者の意見です。見当外れだったら申し訳ありません。

自分の方とは環境が違うので正確に理解はできていないと思うのですが、要するに「開発に利用するパッケージごとにPythonの環境を切り替えたい」ということでよろしいでしょうか?

もしそうであるのであれば、Anacondaを導入して仮想環境を構築されるのが手早い解決策かもしれません。最初に使用するパッケージとバージョンを選択する必要はありますが、その後は仮想環境さえ起動すれば通常のものと同じ様に利用可能です。

投稿2021/03/19 23:33

kensoon

総合スコア48

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問