Python - 概要・バージョン・Hello world!
1. 能書き いずれ、勉強せにゃあかんとは思っていたのですが、事情があって、少し python をかじってみます。 「FreeBSD」で少し、何かをインストールすると大抵、依存するものとして「Python」はインストールされているようです。 「Python」のディストリビューションとして、「Anaconda」というものがありますが、「Python(ニシキヘビ)」に対して、「Anaconda(アミメニシキヘビ)」というのは、まあこういうのを命名する人たちのよくある洒落っ気ですな。 2. バージョン さわり始めた時期の、わたしの環境 OS FreeBSD 10.3 RELEASE i386 では python はインストールされているので、バージョンを確認しようとしたら > python --version python: コマンドが見つかりません. んにゃ? $ ls /usr/local/bin/pytho* /usr/local/bin/python2 /usr/local/bin/python2-config /usr/local/bin/python2.7 /usr/local/bin/python2.7-config python2 と python2.7 がインストールされています。 何か依存しているアプリケーションをインストールしているためだと思われます。 改めて、ports を確認してみました。 $ cd /usr/ports/lang $ ls -ld python* drwxr-xr-x 2 root wheel 512 1月 25 2017 python drwxr-xr-x 2 root wheel 512 9月 25 08:05 python-doc-html drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-pdf-a4 drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-pdf-letter drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-text drwxr-xr-x 2 root wheel 512 11月 3 2016 python-mode.el drwxr-xr-x 2 root wheel 512 11月 3 2016 python-tools drwxr-xr-x 2 root wheel 512 5月 22 2017 python2 drwxr-xr-x 3 root wheel 512 10月 16 07:56 python27 drwxr-xr-x 2 root wheel 512 11月 3 2016 python3 drwxr-xr-x 3 root wheel 512 3月 25 2016 python32 drwxr-xr-x 3 root wheel 512 8月 10 08:02 python34 drwxr-xr-x 3 root wheel 512 8月 10 08:02 python35 drwxr-xr-x 3 root wheel 512 10月 5 07:15 python36 せっかく今から覚えていくので、とりあえず、新しいバージョンにしてみます。 Makefile を見ても python3 のマイナーバージョンがわからないので、python3 をインストールしてみて python36 よりも新しければそれを使って、そうでなければ python3 をアンインストールして python36 をインストールしてみようと思います。 で、python3 をインストールしてみたら > ls -la /usr/local/bin/pytho* lrwxr-xr-x 1 root wheel 9 11月 9 2016 /usr/local/bin/python2 -> python2.7 lrwxr-xr-x 1 root wheel 16 11月 9 2016 /usr/local/bin/python2-config -> python2.7-config -r-xr-xr-x 1 root wheel 4148 10月 16 07:54 /usr/local/bin/python2.7 -r-xr-xr-x 1 root wheel 1769 10月 16 07:54 /usr/local/bin/python2.7-config lrwxr-xr-x 1 root wheel 9 11月 27 22:20 /usr/local/bin/python3 -> python3.6 lrwxr-xr-x 1 root wheel 16 11月 27 22:20 /usr/local/bin/python3-config -> python3.6-config -r-xr-xr-x 2 root wheel 5296 11月 27 22:18 /usr/local/bin/python3.6 lrwxr-xr-x 1 root wheel 17 11月 27 22:19 /usr/local/bin/python3.6-config -> python3.6m-config -r-xr-xr-x 2 root wheel 5296 11月 27 22:18 /usr/local/bin/python3.6m -r-xr-xr-x 1 root wheel 3082 11月 27 22:19 /usr/local/bin/python3.6m-config ってことですので、これでよし。 今んとこ、「python3」をデフォルトとしましょう。 .cshrc に定義 alias python python3 3. Hello world! 何はともあれ、「Hello world!」。 下記のソースを書いて。 print "Hello world!" で、実行してみたら、こんなんなっちゃいます。 File "/home/hogehoge/lang/python/sample/hellong.py", line 1 print "Hello world!" ^^^^^^^^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? うはぁ、参考にしたのが「python2」だったようで、「python2」と「python3」では細かな文法が違うようです。 気を取り直して。 print("Hello world!") で。 Hello world! 今度はうまいこと出力されました。 ちょっと驚くのが、文末に ; がないことだったり、print の文字列の末尾に \n がなかったりすることです。 python の文法では、改行が重要な意味を持つようで。 改行すれば行の終わり。 文字列の終わりも何も指定がなければ、改行になるようです。
OS FreeBSD 10.3 RELEASE i386
> python --version python: コマンドが見つかりません.
$ ls /usr/local/bin/pytho* /usr/local/bin/python2 /usr/local/bin/python2-config /usr/local/bin/python2.7 /usr/local/bin/python2.7-config
$ cd /usr/ports/lang $ ls -ld python* drwxr-xr-x 2 root wheel 512 1月 25 2017 python drwxr-xr-x 2 root wheel 512 9月 25 08:05 python-doc-html drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-pdf-a4 drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-pdf-letter drwxr-xr-x 2 root wheel 512 11月 3 2016 python-doc-text drwxr-xr-x 2 root wheel 512 11月 3 2016 python-mode.el drwxr-xr-x 2 root wheel 512 11月 3 2016 python-tools drwxr-xr-x 2 root wheel 512 5月 22 2017 python2 drwxr-xr-x 3 root wheel 512 10月 16 07:56 python27 drwxr-xr-x 2 root wheel 512 11月 3 2016 python3 drwxr-xr-x 3 root wheel 512 3月 25 2016 python32 drwxr-xr-x 3 root wheel 512 8月 10 08:02 python34 drwxr-xr-x 3 root wheel 512 8月 10 08:02 python35 drwxr-xr-x 3 root wheel 512 10月 5 07:15 python36
> ls -la /usr/local/bin/pytho* lrwxr-xr-x 1 root wheel 9 11月 9 2016 /usr/local/bin/python2 -> python2.7 lrwxr-xr-x 1 root wheel 16 11月 9 2016 /usr/local/bin/python2-config -> python2.7-config -r-xr-xr-x 1 root wheel 4148 10月 16 07:54 /usr/local/bin/python2.7 -r-xr-xr-x 1 root wheel 1769 10月 16 07:54 /usr/local/bin/python2.7-config lrwxr-xr-x 1 root wheel 9 11月 27 22:20 /usr/local/bin/python3 -> python3.6 lrwxr-xr-x 1 root wheel 16 11月 27 22:20 /usr/local/bin/python3-config -> python3.6-config -r-xr-xr-x 2 root wheel 5296 11月 27 22:18 /usr/local/bin/python3.6 lrwxr-xr-x 1 root wheel 17 11月 27 22:19 /usr/local/bin/python3.6-config -> python3.6m-config -r-xr-xr-x 2 root wheel 5296 11月 27 22:18 /usr/local/bin/python3.6m -r-xr-xr-x 1 root wheel 3082 11月 27 22:19 /usr/local/bin/python3.6m-config
alias python python3
print "Hello world!"
File "/home/hogehoge/lang/python/sample/hellong.py", line 1 print "Hello world!" ^^^^^^^^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
print("Hello world!")
Hello world!