Linux 터미널에서 Python 스크립트 실행

Linux 터미널에서 Python 스크립트 실행

나는 pyAES.py라는 이름의 이 스크립트를 다운로드하여 내 Linux의 데스크톱 디렉터리에 있는 폴더 이름 코드에 넣었습니다.

이 예에 따르면, http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/

내가 입력할 때,

./pyAES.py -e testfile.txt -o testfile_encrypted.txt

pyAES.py 파일이 실행되어야 합니다. 그런데 이 오류가 발생합니다.

pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found

ls -l명령 의 출력은 다음과 같습니다.

pi@raspberrypi ~/Desktop/Codes $ ls -l
total 16
-rw-r--r-- 1 pi pi 14536 Oct  8 10:44 pyAES.py

다음은 이후의 출력입니다.chmod +x

pi@raspberrypi ~/Desktop/Codes $ chmod +x pyAES.py                              pi@raspberrypi ~/Desktop/Codes $
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
pi@raspberrypi ~/Desktop/Codes $

명령은 chmod +x pyAES.py && ./pyAES.py다음과 같은 오류를 제공합니다.

-bash: ./pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory

/usr/bin또한 파일을 디렉토리로 이동한 다음 실행해 보았습니다 .

pi@raspberrypi /usr/bin $ pyAES.py
-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
pi@raspberrypi /usr/bin $

/usr/bin 디렉토리에 파일이 있는 것을 볼 수 있지만 해당 파일이나 디렉토리가 없다는 오류가 여전히 발생합니다.

Linux 터미널이 Python 스크립트를 실행하지 않는 이유를 알고 싶습니다.

답변1

잘못 작성된 shebang 라인이 있는 것 같습니다. 당신이 받고있는 오류에서 :

-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory

나는 당신이 첫 번째 줄을 설정해야한다고 말하고 싶습니다 /usr/bin/pyAES.py.

#!/correct/path/to/python

여기서는 다음 /correct/path/to/python출력에서 ​​찾을 수 있습니다.

type -P python

내 시스템에는 /usr/bin/python(가) 없습니다 ./usr/bin/python2

답변2

해당 실행 파일이 변수의 모든 경로 "command not found"에 존재하지 않기 때문에 발생하는 오류입니다 ./bin//usr/bin/$PATH

명령을 실행하면 백엔드 셸에서 PATH 의 실행 파일/바이너리를 검색합니다. /bin/ /usr/bin/등...

따라서 경로가 제대로 정의되지 않으면 이 문제에 직면하게 됩니다.

""를 사용하면 ./command현재 디렉터리에서 해당 명령이 실행되고 PATH 변수는 파일 이름을 검색하는 데 사용되지 않습니다.

답변3

첫 번째 장애물은 프로그램을 찾을 위치를 쉘에 알려주어야 한다는 것입니다. 디렉터리 표시를 넣지 않으면 PATH환경 변수에 설명된 실행 파일 검색 경로에 있는 실행 파일만 실행할 수 있습니다. 현재 디렉터리를 해당 디렉터리에 넣지 않으면 검색 경로에 없습니다. 그러니 실행하세요 ./pyAES.py.

프로그램을 실행하려면 해당 프로그램에 대한 실행 권한이 있어야 합니다.

chmod +x pyAES.py

존재하는 파일에 대해 "잘못된 해석기: 해당 파일 또는 디렉터리가 없습니다" 또는 단순히 "해당 파일 또는 디렉터리가 없습니다"와 같은 메시지가 표시되면 스크립트의 오류가 있음을 의미합니다.오두막선. (보다/bin/sh: ./check-dependent.pl: 찾을 수 없지만 check-dependent.pl은 존재합니다!더 자세한 설명은.) shebang 라인은 스크립트의 첫 번째 라인으로 인터프리터의 위치를 ​​나타냅니다.

인터프리터(예: /usr/bin/python또는 )에 대한 경로를 하드 코딩하지 않으려면 프로그램을 트램폴린으로 /usr/local/bin/python사용할 수 있습니다 ./usr/bin/env

#!/usr/bin/env python

PEP 304#!/usr/bin/env python2Python 2.x를 참조하는 것이 바로임을 지정합니다 . 그러나 Python 2.x가 이름으로만 제공 python되고 python2. 그래서 둘 사이를 저글링해야 할 수도 있습니다. 루트 권한이 있고 배포판에서 Python 2.x만 제공하거나 python제공하는 경우 python2다른 이름에 대한 심볼릭 링크를 만듭니다.

": 해당 파일 또는 디렉터리 없음"(콜론 앞에 아무것도 없음) 오류가 표시되면 Windows에서 편집되었기 때문에 shebang 줄 끝에 캐리지 리턴이 있다는 의미입니다. CR 제거: shebang 라인에는 Unix가 있어야 합니다.줄 끝(라인피드만 해당)

답변4

시도했을 때 같은 오류가 발생했습니다.py file1.py

해결책은 매우 간단합니다. 다음을 입력하면 됩니다.python3 file1.py

관련 정보