開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
MacPorts に python36 があったから、python 3.5 から python 3.6 に変更、アップグレードしようとしたらつまずいたからメモ。
- Python 3.5 をアンインストール。
$ sudo port uninstall python35
- Python 3.6 をインストール。
$ sudo port install python36
- Python 3.6 のインストール時に、
############################################################## # IF YOU ARE USING PYTHON FROM THE TERMINAL, PLEASE INSTALL: # py36-readline # TO AVOID A LIBEDIT / PYTHON INTERACTION ISSUE. # REF: https://trac.macports.org/ticket/48807 ##############################################################
$ python3 Python 3.6.0 (default, Dec 23 2016, 12:50:55) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> >>> quit() quit() >>> $ $
入力がそのまま出力されたり、余分な空白行が挿入されるみたい。 - ということで、py36-readline をインストール。
$ sudo port install py36-readline
- Terminal で正常に使用できるか確認すると、
$ python3 Python 3.6.0 (default, Dec 23 2016, 12:50:55) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 1+2 Python(37171,0x7fffa822b3c0) malloc: *** error for object 0x104bec640: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Abort trap: 6 $
という感じで使えない。 - 使えないなら、入力がそのまま出力されたり、余分な空白行が挿入されても使える方がいいから、py36-readline をアンインストール。
$ sudo port uninstall py36-readline
- と言いつつも、入力がそのまま出力されたり、余分な空白行が挿入されない方がいいと思って、もしかしてと思い、 variants で確認。
$ port variants python36 python36 has the variants: readline: Use readline instead of libedit universal: Build for multiple architectures $
readline を発見。 - ということで、py36-readlineではなく、こちらの readline をインストールしてみる。
$ sudo port install python36 +readline
- 3.と同様に、
############################################################## # IF YOU ARE USING PYTHON FROM THE TERMINAL, PLEASE INSTALL: # py36-readline # TO AVOID A LIBEDIT / PYTHON INTERACTION ISSUE. # REF: https://trac.macports.org/ticket/48807 ##############################################################
- 再び、実際にどうなるか確認してみる。
$ python3 Python 3.6.0 (default, Jan 25 2017, 15:04:34) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 1+2 3 >>> quit() $ $
先ほどとは違い、問題なく動作。 - 最後に、readline 無しの python36 をバージョンを確認してからアンインストール。
$ port installed python36 The following ports are currently installed: python36 @3.6.0_0 python36 @3.6.0_0+readline (active) $ sudo port uninstall python36 @3.6.0_0 Password: ---> Uninstalling python36 @3.6.0_0 ---> Cleaning python36 $
0 コメント:
コメントを投稿