0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

環境構築 0_wsl上でのpython hello world まで

Last updated at Posted at 2021-04-19

#初めに
初めて記事を投稿する。
Qiita記事作成に当たり、このサイトこのサイトを参考にした。

wslの環境構築について、別の大学にある同じ研究室の後輩に教えるために作成した。
ちょくちょく内容を追加していくと思う。
そのため、本筋からずれることが多々ある。

ワタシハリナックスチョットデキナイので、嘘をつくことも多々ある。
指摘してくださると助かる。

後輩へ。分からないことがあればググれ。
君の分からない問題は、世界の誰かがすでに突破している問題だ。ググれば出る。
それと、ここで質問するとき本名は言わないでくれ。

Nortonなどのセキュリティソフトを入れている人は、ファイアウォール関連の問題が発生する可能性があるため、追記から読んだほうがいいと思う。

#目次
0. wslについて
0. wslのインストール
0. pythonのhello world
0. 追記

#wslについて
wsl(Windows Subsystem for Linux)は、文字通り、windowsマシン上で、linuxを動かすためのシステム。
windowsマシンから見て、別のマシン(仮想マシン)扱いになっている。
ROSなども普通に動く。
かなり便利。

####不便な点
wsl2(2021/04/19現在wsl最新)では、GUI関連がサポートされていない。そのため、自分でxserverなどを介して、GUIを動かせるように設定しなければならない。
ipアドレスの扱いに癖があり、TCP/IPなどで、windowsとwsl_linuxで通信させたいとき、wsl_linux側からでは、"localhost"でwindows側にアクセスできない。
色々詰んだ時、__ファイアウォール関連が原因__だったことが結構多い。ファイアウォールの注意喚起が起きたときは、脳死でokを連打しないようによく読む癖をつけたほうが良い。

####linuxについて
linux(linux系OS)は、windowsOSやmacOSと同じOSの一種である。
様々な種類(ディストリビューション)があり、ubuntuなどが代表的である。
linuxは、その名から分かるように、Linus氏が作成したunix系OSである。(macOSもunix系。)
オープンソースなものが多く、開発ガチ勢が良く使用している(気がする)。
windows派 vs mac派 の宗教戦争をしている間に、「僕はlinux派~」と割り込むと、双方から嫌われる可能性があるので注意しよう。
ROS(Robot Operating System)は、基本的にlinux系OS上でしか動作しないので、ロボットの開発・制御をしたいなら、linux一択みたいな風潮はある(気がする)。

####macユーザーの後輩へ
macOSは、先に述べた通り、linux同様、unix系OSである。したがって、これから言うことは嘘であるが、macを使用しているのなら、とりあえず、以下に示すwslを用いたlinux環境の構築は、もうできているものとして考えてもよい。(pythonのhelloworldらへんから試してみてくれ。)
しかし、細かいところで仕様が違うところがあるので、問題が発生したら、その都度調べてくれ。僕はmacを使ってないからわからん。
ただ、macユーザーはかなりの数がいるので、もし問題にぶつかっても、同じ問題を解決している人がネット上にきっと存在する。安心していい。
もし、macだけどどうしてもlinuxで開発したいというのなら、"仮想マシン"や"デュアルブート"で検索してみたらよい。

#wslのインストール
基本的に、windows公式のここに従えばよい。
__上記サイトを読むことを強く推奨する__が、めんどくさい場合は、以下のコマンドを、powershell(管理者権限)で実行すればよい。
powershell(管理者権限)で実行するとは、スタートボタン左クリックで出てくる"Windows PowerShell(管理者)"をクリックすると出てくる青い画面上で、コマンドを実行する、という意味である。

wslを有効にする
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
仮想マシンの機能を有効にする
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

上記コマンド実行後windowsマシン(パソコン本体)を再起動

その後、Microsoft StoreでLinux ディストリビューション(ubuntuのことと理解してよい。)をインストールする。
  自分は、"ubuntu"を使用する。
    Microsoft Storeの、"Ubuntu 20.04 LTS"(2021/04/19現在最新版)にした。
そして、起動する。この時、ubuntuのアカウントを作成する。

追記;2021/05/09
自作PCなどで環境構築している場合は、BIOSから、"Intel Virtualization Technology"の部分を有効にしないと、正しく動作しない場合があるらしい。

最後に、以下のコマンドを、同様にpowershell(管理者権限)で実行

wsl2をwslの規定のバージョンとして設定する
wsl --set-default-version 2

wslのインストールはここで終わり。

以下確認

確認用コマンド
wsl -l -v

確認用出力
 NAME      STATE           VERSION
* Ubuntu    Running         2

のようになっていればよい。(stateは、別にRunningじゃなくてもよい。)

これで、windows上のターミナル(コマンドプロンプトでも、power shellでもどっちでもいい)で、"wsl"と入力すれば、ubuntuが動く。
最初にwslを起動するときは、起動に少し時間がかかり、また、ubuntuアカウントを作成する必要がある(とても簡単)このサイトを参考に行うとよい。

以降の環境構築において、windows上の作業なのか、ubuntu上の作業なのかを、意識して作業するべき。

####便利ツール
以下のツールのインストールを強く勧める。
######windows terminal
Microsoft Storeで、"windows terminal"と検索すれば出る。
超便利なターミナル。
######Visual Studio Code (vsc)
エディタ。エディタは、各宗教にお任せするが、wsl+vscは良い。
公式サイトでインストールできる。
このサイトで、vscを入れるときの詳しい手順(必要なvscの拡張機能など)が説明されている。
vscをubuntu上で使うときは、リモートでwslにつないでいる扱いになっており、windowsアプデの後などに、参照パスが切れて開けなくなることがある。その時は、一回、windows側でvscを開き、そこから、wsl上のファイルを開けば、参照パスが通り、以降、wsl上でも開くようになる。

#pythonのhello world
"hello world"とは、プログラミング界隈におけるの"チュートリアル"の意味。

python(python3)をwsl上にインストールして、実際にコードを書いてみるところまでする。
この作業は、すべて、wsl上(ubuntu上)で行う。windows上ではないことを意識して行うように。
他の作業は、wslとwindowsの両方で作業が必要になることが多い。

作業場所は、自分で"workspace"などの名前のディレクトリを作成して、その中で行うのがマナーがいい。
ディレクトリの作成方法などの、__linuxコマンド__は、自分で調べて、使えるようになっておくべき。

以下のコマンドをwsl上で実行する。(コマンドは1行ずつね。)
コマンド間の日本語は、読まんでもいい。

おまじない
sudo apt update
sudo apt upgrade

"sudo"で始まるコマンドは、"管理者権限で実行"みたいな意味。
"ほんとに実行しますか?"と聞かれるので、"y"(yesの意味)と打てばよい。
プログラムの世界では、祈ることが非常に重要視される。このおまじないも、祈りの1つ。
この2つのコマンドは、定期的に行っていいと思う。

python本体のインストール
sudo apt install -y python3
sudo apt install -y python3-pip
sudo apt install -y python3-dev

"-y"は、毎回、"y"って手打ちするのがだるいからつけただけ。

これから、色々なpythonパッケージをインストールすることになると思う。
その時、"pip"でインストールしたら、python内部の"site-package"内部に、
それ以外の方法でインストールしたら、"dist-package"内部に格納されるらしい。

NumPyのインストール
sudo apt install -y python3-numpy

NumPyは、pythonを超すごい電卓にしてくれるライブラリ。
pythonが人気な理由の1つが、NumPyを使用できるから。
なくても動くが、np(NumPyのこと)がないpythonって、正直、意味わからんから、最初に入れておく。

pylintのインストール
pip install pylint

pylintは、pythonの文法をチェックしてくれるやつ。
なくても動くけど、なかったら、vscに怒られるので、最初から入れておく。

以上で、pythonの環境構築終わり。

以下、"hello world"を出力するプログラムを作成し、動作確認。

適当な場所で、以下のコマンドを実行。

helloworld.pyファイルの作成と編集
code helloworld.py

"code"コマンドは、vscで編集するときに使用する

以下vsc内部でhelloworld.pyを以下のように編集

helloworld.py
print("hello world")

保存後、wsl上で、以下のコマンドを実行

helloworld.pyの実行
python3 helloworld.py

以下のような出力になれば、動作確認成功。

hello world

また、pythonには__対話モード__というものも存在している。
調べることをおすすめする。

以上で、pythonのことを__完全に理解した__と思う。

次の環境構築はこちら

#追記
wslからvscを開くときについて、セキュリティソフトによって生じる諸問題:
通常、vscをwslから開けるようにするには、まず、windows側にvscをインストールして、vsc内部から"リモートエクスプローラー"経由で、wsl内部のファイルを開けば、wslとvscにパスが通り、以降wslからvscを起動できるようになる。
この時、ファイアウォールの設定で、vscのアクセスを許可をする必要があるが、Nortonなどのセキュリティソフトを入れている場合、ファイアウォールの設定を、自分でいじれないという問題が報告された。
現在(2021/05/09)、この問題は解決していない。
考えられる解決策は、初めてvscを起動するときに、ファイアウォールのウィンドウがポップアップしてくると思うが、その時に、脳死でokしまくるのではなく、そこで、ファイアウォールのアクセスを許可するように気を付ける、ということくらいしか考えられない。
もしくは、セキュリティソフトをアンインストールすること。(個人的には、過去、あるセキュリティソフトについて、ライセンスが残っている状態で、うざくなったため、アンインストールした経験があるが、これといった問題は発生していない。そのため推奨できる手段ではあるが、責任は取らない。)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?