python 2.x 에서는 import commands 불러오지만 3.x에서는 실행이 되지 않는다.
해당 부분은 3.x에서부터 commands가 없어지고 subprocess로 변경되었기 때문이다.
1. 기본 python 2.x에서는 commands를 실행해보자 정상적으로 명령어를 실행해서 값을 출력한다.
1 2 3 4 5 6 7 8 9 |
[root@xinet ~]# python Python 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import commands >>> commands.getoutput('hostname') 'xinet.kr' |
2. 그럼 이번에는 python 3.x에서 동일하게 진행해보자 No moduel named ‘commands’ 라고 출력이 된다 그럼 subprocess를 import해서 실행해보자
명령거가 commans 가 아니라 subprocess로 변경되었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@xinet ~]# python3 Python 3.6.4 (default, Dec 19 2017, 14:48:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import commands Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'commands' >>> import subprocess >>> subprocess.getoutput('hostname') 'xinet.kr' |