이번 글에서는 Linux 상에서 Python 파일을 생성하고 실행하는 방법에 대해 살펴보고자 합니다. Python 실행하는 방법은 주로 해당 블로그(https://angliss.cc/making-pyfile-at-linux/)를 참고하였습니다. Python 파일을 생성하는 방법은 간단합니다. 아래의 코드와 같이 vi 편집기를 활용하면 됩니다.
(base) [ec2-user@00 test]$ vi test.py
실행시키고자 하는 Python 코드를 아래와 같이 입력하면 되며, 코드 최상단에 '#!/usr/bin/python3'이라는 shebang을 입력해도 되고, 입력하지 않아도 실행시키는 것이 가능합니다.
#!/usr/bin/python3
print('Hello World!')
shebang이 입력되어있는지 여부에 따라 두 가지 방법으로 Python 파일을 실행할 수 있습니다. shebang을 입력하면 두 가지 방법 모두 가능합니다.
# shebang을 입력했을 경우
(base) [ec2-user@00 test]$ ./test.py
Hello World!
# shebang을 입력하지 않았을 경우
(base) [ec2-user@00 test]$ python3 test.py
Hello World!
원래는 위와 같이 뜨는 것이 정상이지만, 처음 대부분의 경우에는 아래와 같이 Permission denied 에러가 뜰 것입니다.
(base) [ec2-user@00 test]$ python3 test.py
-bash: ./test1.py: Permission denied
이럴 경우에는 해당 파일의 권한 설정을 변경해줘야 합니다. 우선 해당 파일의 권한부터 확인해보도록 하겠습니다.
(base) [ec2-user@00 test]$ ll
-rw-rw-r-- 1 ec2-user ec2-user 12 Aug 23 14:33 test1.py
출력되는 정보 중 가장 앞에 해당하는 Permission 정보가 중요합니다. '-rw-rw-r--' 중 맨 앞은 파일 타입으로 1) d: 디렉토리, 2) -: 일반파일, 3) i: 링크파일 등 여러 값을 가집니다. 다음 9자리는 그림을 통해 설명하도록 하겠습니다.
값은 r, w, x, 총 세 가지를 가지며, 각각 읽기, 쓰기, 실행을 의미하고, 위치에 따라 소유자, 그룹 사용자, 기타 사용자의 권한을 나타냅니다. 또한 각 값을 8진수로 변경할 수 있으며, 이 값은 권한을 변경할 때 주로 사용됩니다. '-rw-rw-r--'을 다시 해석해보면, 일반파일이고 소유자와 그룹 사용자는는 읽기(r)/쓰기(w)가 가능하고, 기타 사용자는 읽기(r)만 가능하다는 것을 알 수 있습니다. 이제 모든 사용자들이 파일 실행이 가능하도록 변경하겠습니다.
(base) [ec2-user@00 test]$ chmod 755 test.py
chmod는 파일의 권한을 변경해주는 명령어입니다. 755는 앞에서 설명한 것처럼 Permission 정보를 8진수화 한 것으로, 결국 소유자는 읽기(r), 쓰기(w), 실행(e) (4+2+1), 모두 가능하며, 나머지 사용자들은 읽기(r), 실행(e) (4+0+1)만 가능하도록 설정을 변경하는 코드인 것입니다. 이제 다시 코드를 실행하면 'Hello World!'가 정상적으로 출력될 것입니다.
'Data Engineering > Linux' 카테고리의 다른 글
[Linux] Windows에서 Ubuntu Linux 설치 (3) | 2023.11.09 |
---|---|
[Linux] 문자열 분리 (Split string) - awk, split (0) | 2022.10.11 |
[Linux] bash_profile 시스템 환경변수 등록 (1) | 2022.10.07 |
[Linux] 자주 사용하는 명령어 정리 (0) | 2022.08.25 |
댓글