初めに
※※備忘録です※※
私はただのPython初心者です。
ググりにググりをさねて環境構築中のため、
もしかしたら間違ったこと・不要なこともしているかと思いますので
ご留意の上、優しく見守ってください。
(当然のごとく当たり前のこともやってしまっています。)
今回の経緯
Python勉強したいし、作りたいものを開発しようと構想ねって
いざ作ろうとしたら
M1のMacにしてからPython環境作っていなかったことを思いだす
段取りの悪さを発揮した今日この頃。
ググりながら今必死こいて環境整えています。
PC周り
- OS:macOS Monterey
- MacBook Air (M1,2020)
- エディタ:VScode
入れたPythonバージョン
- Python 3.10.8
やったこと・やること
- VScodeに拡張機能を追加する
- PYENV入れる
- Pythonインストールする
- Condaで仮想環境準備する(今ここ)
今回は1〜3までの内容を投稿しています。
VScodeに拡張機能を追加する
VSCodeにPythonの拡張機能をインストールしました。
これで.pyファイルを触って実行するまでの流れができました。
PYENV入れる
読んだ記事の中では「homebrew」を使って入れる、というものが多かったのですが
私の環境ではhomebrewとの相性が悪かったので
Gitからインストールする方法で進めました。
GitからPYENVをインストール
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
エラーの定めを背負っている私がそう簡単にするっとインストールできるわけもなく
その直後に出たエラーがこちら
fatal: unable to connect to github.com:
github.com[0: 20.27.177.113]: errno=Operation timed out
unable to connectていわれているから、
おそらく外部からの接続許可ゆるされてないんだと思う(たぶ...n...)
ということで、gitではなくhttpsでインストールできるかを試すため、
次のコマンドを実行
git config --global url."https://".insteadOf git://
そしてもう一度コマンド試したら
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
インストールできた!
パスを通す
続いてパスを通します。
私の環境ではzshでやろうとしたらできず
bashで通すことができたので、その時のコマンドがこちら
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
なんでbash使えたのかが疑問だったのですが、
うる覚えの記憶だと、フロント開発環境作る時に何かやらかしたんだと思います...
元々zshだったはずなので...
パス通せたかを確認するためにPYENVのバージョンを確認します。
pyenv -v
pyenv 2.3.6-4-g904fe964
(後ろの-g904fe964が気になるけど、これ、PYENVの影響だよなぁ..)
(と思ったらpythonインストールした後にpyenvのバージョン実行したらpythonと同じバージョンになったので安心した)
Pythonインストールする
PYENV入れれたのでPythonをいよいよインストールします。
Pythonの書き方変わってくるかもなので一応2系と3系入れとこうと思ったけれど....
2系は入れませんでした。
2系入れようとした時にエラーも出たので備忘録として残します。
pyenv install --list
インストールできるPythonのバージョンを知りたいのでPYENVで一覧を出します。
最新であろう、2.7.18と3.10.8のインストールを試みます。
pyenv install 2.7.18
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
詳しいことはちゃんと把握していないのですが(ダメな例)
シンボルが環境の中に入っていない、いや対応していない...な感じのことを言っているのだと、
そしてM1になってからMacにPythonが入っていないと聞いていたのでその影響なんだろうな程度に考えていました。
なので
「古い系統より新しい系統で勉強した方が今後いいよなぁ....3から始まるもの入れよう」
という結論に至りました。
3.10.8のバージョンはするっと入ってくれました。
グローバルに通す
インストールできたのでローカルかグローバルに設定します。
私はとんでもないチキンオブハートなので、最初ローカルに通しましたが
今後も色々触りたいなと思ったので最終的にグローバルに変更しました。
// ローカルだったら
pyenv local 3.10.8
// グローバルだったら
pyenv global 3.10.8
設定したらPythonのバージョンが切り替えできるか、入っているか確認するためにバージョンをみます。
python --version
Python 3.10.8
これでとりあえずPythonをMacに入れることができました!
VSCodeでPythonファイルが実行できるか確認する
Pythonを入れることができたので、簡単なサンプルファイルを用意して実行を確認します。
サンプルファイルと言っていますが、みなさんご存知のHello Worldを表示するだけです(笑)
print('Hello World')
追加した拡張機能で実行ボタンがあるのでポチっと押すと
無事出力が確認できました!
番外:PYENVの逆襲
結論から申しますと、今回はパスを通し直してglobalに変更しました。
ただ、これは根本的な解決ではないので良い方法探しています。
Pythonを入れれたのも束の間。
実は最初にLocalで設定してしまったがために、
VSCodeでサンプルファイルを試そうとしたのですが実行できなかったのです...
(実行できなくて当たり前なのですが)
ゆえに、globalにし直しました。
びびって最初からlocalに設定する癖を直したい。
なので、globalコマンドを実行したのですが
command not found: pyenv
コマンドないっていわれました(笑)
「えええええ、さっき入れたやんけぇぇぇぇ」
とセルフ発狂しかけましたが、
「あれ、この事象どこかで.....前にも似たようなこと起きてたよな..?」
そう、パス毎回通さないといけなかったはず〜〜の記憶が蘇り、
それと同時に毎回パス通さなくても良い方法も目にして一度は実行しているのです...
しかし残念なことに、毎回パス通さなくても良い方法のメモを紛失しました.....
最初の方にも書きましたが、PYENVを整える際に入れたパスを再度入れ込んで
globalに変更しました。(その後VSCodeでtest.py実行できました)
次回:Condaで仮想環境を準備できるのか。
Python扱っているエンジニアさんに開発環境の件を相談したところ
「Conda使ったら?」とアドバイスいただけたので環境準備しようかな〜と思っております。
今は下準備中で(入れ方とどういうものなのか)調べているところです。
※11/15現在
まだ途中ですがminiforge3を使って環境を作っていっています。
miniforgeを使ってM1 MacにCondaの環境を準備する