質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

2239閲覧

ラズパイ python3

raspypy

総合スコア247

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2020/05/20 06:54

編集2020/05/22 07:13

##試していること

今までpython2.7系でプログラムを作成してきましたが、
Python3系への移行を進めています。
(Python2.7系で作成したときとは全く別の環境(別のMicro SD Cardを使用)してPython3系の環境を作っています。

次のサイトに書かれている手順にしたがって、Raspberry PiのPythonをPython3がデフォルトになるように設定しました。
https://www.souichi.club/raspberrypi/python3-default/

##教えてほしいこと

上の手順でpythonのバージョンを確認すると、
pi@raspberrypi:~ $ python -V
Python 3.7.3
となっています。
python3系で作成したプログラムを、今の環境で実行できれば、python3系への移行ができたという理解で合っていますでしょうか。

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

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

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

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

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

guest

回答3

0

そのサイトに書いてあることは、やるべきではありません。

/usr/bin/python」がシステムでpython2になっている以上、全てのソフトが「/usr/bin/python」を動かせばpython2が動く事を前提としています。
勝手にpython3に変えると、python2で動かすつもりのソフトがpython3で動くことになり、不具合を起こすことになります。

また、python2のパッケージに更新があると、「/usr/bin/python」は上書きされてしまう恐れがあります。(これはやってみないとわかりませんが)

python3で動かすべきソフトは「/usr/bin/python3」で動かすようになっているはずですので、それに合わせて環境を整えた方が健康的だと思います。


まぁ蛇足かもしれませんが…。

ubuntu20.04ではpython2の除去がすすめられ、ついにデフォルトでpythonコマンドがインストールされなくなりました。
調べてみると、「python-is-python3」とか「python-is-python2」などというパッケージがありますね。

$ apt search python-is ソート中... 完了 全文検索... 完了 python-is-python2/focal,focal 2.7.17-4 all symlinks /usr/bin/python to the DEPRECATED python2 python-is-python3/focal,focal 3.8.2-4 all symlinks /usr/bin/python to python3 python-iscpy/focal,focal 1.05-0ubuntu3 all Python library to parse ISC style config files python-iso8601/focal,focal 0.1.12-1 all Python module to parse ISO 8601 dates - Python 2.x python3-iso3166/focal,focal 0.8.git20170319-2 all Standalone ISO 3166-1 country definitions (Python 3) xonsh/focal,focal 0.9.13+dfsg-2 all Python-powered, cross-platform, Unix-gazing shell xonsh-doc/focal,focal 0.9.13+dfsg-2 all Python-powered, cross-platform, Unix-gazing shell (documentation)

このような対処がOS側で行われないうちは、先に言ったとおりにしたほうがいいと思います。

投稿2020/05/20 12:04

katsuko

総合スコア3538

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

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

0

ベストアンサー

ubuntulinuxなら、pyenvでpyhtonのバージョン管理をするととても便利ですよ。

pyenvのインストール

# apt install pyenv

pyenvに必要なpythonを必要なだけインストールします。

$ pyenv install 3.7.6 $ pyenv install 3.8.1

pyenvの状態

$ pyenv versions * system 3.7.6 3.8.1

現在のpythonはラズパイのデフォルト(system)

$ python -V Python 2.7.16

pyenvでpythonを切り替える

$ pyenv global 3.7.6

pythonのバージョンが3.7.6に切り替わった

$ pyenv versions system * 3.7.6 (set by /home/pi/.pyenv/version) 3.8.1 $ python -V Python 3.7.6

とても便利なので使ってみてください。
(systemの時にpipでインストールしたパッケージは、3.7.6にはありませんので再度pipでインストールしてください。)

投稿2020/05/20 11:59

technocore

総合スコア7337

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

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

raspypy

2020/05/20 12:25

回答ありがとうございます。 とても勉強になります。 何点か教えてください。 ①次のコメントについて 『ubuntulinuxなら、pyenvでpyhtonのバージョン管理をするととても便利ですよ。』 このコメントは、ラズパイ (Raspbian: Buster)でもpyenvによる管理が可能ということでしょうか? ②pyenvでpythonのバージョンを切り替えた場合、一度切り替えたら、python3.7系のままになりますか? ③pyenvでpython3系に変更した場合は、pip、pip3 のどちらを使用しても良いのでしょうか? ④pipとpip3 は、python2.7系を使用している時はpip、python3系を使用している時はpip3 と理解していたのですが、どちらでも良いのでしょうか? ⑤python3で作成するプログラムの先頭行に #!/usr/bin/python と技術していますが、これはそのままで良いのでしょうか? →私が行った作業(python 3 系をデフォルトにする)の後、実行させてpythonプログラムの先頭行には、このように(#!/usr/bin/python)記述しています。
technocore

2020/05/20 12:40

① Yes ② Yes ③④ たとえば3.7.6に切り替えた場合 $ pip -V pip 20.0.2 from /home/pi/.pyenv/versions/3.7.6/lib/python3.7/site-packages/pip (python 3.7) $ pip3 -V pip 20.0.2 from /home/pi/.pyenv/versions/3.7.6/lib/python3.7/site-packages/pip (python 3.7) pipもpip3も同じです。(だからpipだけ使っていれば良い) ⑤ わざわざ指定する必要はありません。
raspypy

2020/05/22 07:12 編集

早速のコメントありがとうございます。 ①#!/usr/bin/pythonと指定する必要はありませんとコメントをいただきましたが、今まで指定していました。 #!/usr/bin/pythonと指定していたので、python2系で実行されていたのでしょうか? ② #!/usr/bin/pythonと指定すると問題ありますでしょうか? ③別の方の回答にもありましたが、私が質問に掲載したサイトの方法(python 3 をデフォルトにする)は、してはいけない方法(推奨されない方法)でしょうか? たびたびすみませんが、回答いただけると助かります。
technocore

2020/05/20 13:01

① /usr/bin/python -V でバージョンを確かめましょう ② pyenvで有効にしたpythonを使うのですから、別のpythonを指定する  必要はありません。 ③ ラズパイのPython環境は極力手を加えないようにしましょう。
raspypy

2020/05/22 07:11 編集

コメントありがとうございました。
guest

0

~その1~
何をもってpython3系への移行したと判断しますか?python -Vで3.7.3が見えるのであればpython xxx.pyで実行できると思いますが。

~その2~
pip -V(python 3.7)が見えれば問題ないと思います。

投稿2020/05/20 07:14

x98000

総合スコア1096

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

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

raspypy

2020/05/20 07:26

回答ありがとうございます。 その1については、pythonプログラムをpython3で書き直そうとしていますが、 Python3で書いたプログラムを今の環境(python -V で.3.7.3)が見える環境で実行できれば、 Python3で書き直しているプログラムが間違えていない(ちゃんとpython3で書かれている)と理解しようと考えていますが、間違えていますでしょうか。 その2については、 pi@raspberrypi:~ $ pip --version pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7) pi@raspberrypi:~ $ pip3 --version pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7) となりますので、pipでインストールしようと考えています。 この場合、pipとpip3どちらでインストールしても良いと考えていますが、間違えていますでしょうか。
x98000

2020/05/20 10:58

その1は動けば問題ないと思います。 その2はpip3がシンボリックリンクになっていると思うのでどちらで実行しても問題ないでしょう。
raspypy

2020/05/20 11:55

コメントありがとうございます。 初歩的な質問ですみません。 ラズパイは、python2とpython3が共用になっていると思いますが、私の場合は、python3をデフォルトにしました。ここまでは良いのですが、 pipとpip3をどう理解すれば良いのか困っています。 pip -Vでpython3.7が見えていることはどう理解すれば良いのでしょうか? たびたびすみませんが、教えていただけると助かります。
x98000

2020/05/20 12:45

python3.7を入れたことにより、pipも置き換わったと思われます。 cat `which pip` で中身を確認してください。 1行目にpython3.7が指定されていれば置き換わっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問