見出し画像

Pythonの環境を再構築してみる

こんにちは!ミケです。

皆様いかかお過ごしでしょうか。

今回は、VScodeで初期から使用していたAnaconda promptからターミナルを変更するために試行錯誤を繰り返したので、その方法やヒントをまとめられればと思います。
環境を変更するのって、新しいことをいっぱい勉強して調べないといけないから大変ですよね。。。!
この記事が誰かがプログラミング環境を変えたいと思っている初心者の方の一助になれば幸いです。

*投稿主はプログラミング初心者です。そのため、間違っていることを言っていることが多数あると思います。これは、環境再構築の際に自分が感じたことを自由に述べていますので、正確な情報は信頼できるサイトをご自分でお確かめください

環境変更のきっかけ

現在私は、ShoさんのYoutubeを見ながら、PythonでWebブラウザを作成する"Django"というフレームワークを独学で勉強しています。


その際、仮想環境という概念や、VSCでのコーディングをより便利にするための様々なエクステンションがあることを知りました。特に、企業での共同開発ではGitや、仮想環境を自分で作成する必要があると知り、初心者パッケージ(?)であるAnacondaを疑わず愛用し続けていましたが、これを機に純正Pythonでの環境構築と、仮想環境であるpipenv、そして自分のgithubを使ってみよう!というモチベーションにかられたので、環境を再構築してみようと思い立った次第です。

1.Anacondaのアンインストール

まず初めに、Anacondaのアンインストールを行いました。理由として、Anacondaは元々それ自体が仮想環境のパッケージツールだからです。
まだ初学者であるため、詳しくはわかっていないのですが。。環境管理において、Anacondaでトラブルになることはよくあることのようです。
参考にしたWebページをいくつか紹介しておきます。

そして、これは実体験ですが、AnacondaではもともとBaseという仮想環境内でコーディングをしているため、pipenvをAnaconda内で使用すると、仮想環境の中に仮想環境を作るという不思議な現象が起きます
pipenvで仮想環境を作成した場合、ターミナルでは

(base)(pipenvの仮想環境名) PS C: ~~

このような表示になります。二重の仮想環境は自分には良く分からないので、不安でした。

また、Anacondaのデメリットとして、パッケージの混合が発生してしまうというものがあります。

これによると、AnacondaではパッケージをPyPIからでなく、Anaconda Cloudの独自のリポジトリからダウンロードするため、2つの異なる提供先からのパッケージが混同してしまいます。実際、Anaconda Promptでpip listを確認すると、condaパッケージとpipパッケージがぐちゃぐちゃになっていました(記事を書いている現在、Anacondaをアンインストールしてしまったので画像は無いです!すいません。もし、あなたがAnaconda Promptを使用しているなら、ご自分で確認してみてください。)。
Anaconda Cloudで公開されているパッケージは、PyPIにあるパッケージのうち一部しか扱っていません。そのため、現状支障なくパッケージはインスト―ル出来ていますが、今後パッケージでのトラブルが起きる可能性があると判断しました。

Anacondaのアンインストールの方法

こちらの記事を参考にしました。

Anaconda-cleanを実行して、その後設定からAnacondaアプリケーションを削除!今までありがとう、Anaconda。

2. Pythonのインストール

AnacondaにPythonパッケージが入っており、それが消えたので今度はPCでPythonを使用するためにPythonパッケージをインストールします。公式サイトよりダウンロードし、exeファイルを実行します。

ダウンロードが終わったので、いよいよVScodeの設定に入りましょう。

3. ターミナルは何にしようか

ターミナルは様々なものがありますが、知識がない方にはWindows PowerShellがおすすめです。ちなみに、私ははじめGit Bashを使おうと思っていたのですが、生まれてからWindowsしか触ってこなかった奴にGit Bashは優しくありません

■Git Bashが優しくないところ
初期設定がハード。コマンドで設定をしなければならない(難易度◎)
・なんか良く分からんが文字化けする
 これは特に厄介です。私はdjangoのserverログが一生文字化けしたまま治らなかったので、Git Bashを断念しました。
・設定画面がすべて英語
・検索しても他に比べ親切なサイトが少ない
 おそらくLinux経験者の視点から情報が書かれることが多いからだと思います。
・コピーペーストのショートカットキーが違う(Ctrl + Insert)
 今までInsertキーとか使ってなかったのにそれはつらいって(泣)

Linuxの操作に自信がある人はGit Bashを使いましょう。vimなど便利なコマンドがたくさんあるらしいです。

(余談)Git Bashをトライしたきっかけとなるサイト↓

VScodeのターミナル設定の方法

「ファイル」→「ユーザー設定」→「設定」→「機能」→「ターミナル」の順に進み、Integreted > Default profile: Windowsを確認。PowerShellが選択されていればOK。Font Sizeもお好きな設定にすれば見やすい。
もしくは、ターミナル画面の下矢印のアイコンから「既定のプロファイルの選択」からでも設定可能です。

そして、Powershellを起動後、初回のみ、以下のコマンドを入力してください。

PS C:\> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

これはPowerShellでスクリプトの実行を許可するためのコマンドです。
これを最初にやっておかないとpipenvを使おうとするとエラーメッセージが出ます。これの解決に相当時間が溶けました。。。
ちなみにエラーメッセージ↓

このシステムではスクリプトの実行が無効になっているため、
ファイル C:\Users\user1\venv\Scripts\Activate.ps1 を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170)
を参照してください。
発生場所 行:1 文字:1
+ .\venv\Scripts\Activate.ps1
+ ~~~~~~
   + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
   + FullyQualifiedErrorId : UnauthorizedAccess

以下のページを参考にしました。

拡張機能の設定

ここからは自分がインストールしている拡張機能の紹介。

-----
HTML関連
・Auto Rename Tag

HTMLファイルでタグを編集するときに、開始タグと終了タグを一括で編集できる。
・Color the tag name(タグに色つけ太郎)

タグに色がつく。見やすい。
・Highlight Matching Tag

タグの開始から終了までの区間が強調表示されるようになる。divどこまでだっけ?ってならない。
・Path Intelligence

リンク指定の際にリンクを自動補完してくれる。

------

Python関連
・Python

とりあえずこれだけは入れとこう。
・Pylance

Pythonのオートコンプリート機能の拡張版。
・Kite

めっちゃ補完してくれるやつ。あと公式ドキュメントのリンクとか教えてくれる。
・Bracket Pair Colorizer 2

括弧ごとに色を付けてくれる。3重括弧以上が見やすくて抜けが減る。
・Indent-Rainbow

インデント(空白)に色がつく。Pythonでは本当に助かる。

-----

Django
・Django
djangoプロジェクト内のHTMLファイルがDjango-HTMLとして認識される。
Djangoテンプレートタグに色がつく。

※ただ、このDjango-TemplateにするとEmmetのオートクロージングが使えなくなる。Webで調べたところ、django-htmlをsetting.jsonでhtmlとしてEmmetに認識させれば解決すると書いていたが、まだうまくいっていない・・・誰か解決方法教えてください。
・Djaneiro - Django Snippets

Djangoテンプレートタグを自動補完してくれる拡張機能。

-----

ガシェット系
・Night Owl

VScodeテーマ。目に優しい気がする。
・Material Icon Theme

拡張子を識別してファイルにアイコンを表示してくれる。やる気と見やすさが上がる。

最後に

最後まで閲覧ありがとうございました。私自身教えて欲しいことは沢山ありますが、Djangoマスター目指して頑張ろうと思います。
この記事がPythonやDjango始めたい方のスタートアップ書になっていれば幸いです。ではでは!

この記事が気に入ったらサポートをしてみませんか?