2017-02-15 2 views
0

파이썬 스크립트를 실행해야하는 PHP 응용 프로그램을 만들고 있습니다. virtualenv를 사용해야합니다. 프로젝트 카탈로그에서 env 디렉토리를 만들고 내부에 가상 환경 이름 python을 만들었습니다. 다른 카탈로그에서 나는 실행하고 싶습니다 스크립트와이 bash는 스크립트를 넣어했습니다virtualenv에서 python 스크립트를 실행하는 Bash 스크립트

/var/www/project/scripts/../env/python/bin/python: can't open file '/var/www/project/scripts/../scripts/script.py arg1 arg2': [Errno 2] No such file or directory 

:

#!/bin/bash 

app="$(pwd)/../" 
pythonEnv="${app}env/python/" 
source ${pythonEnv}"bin/activate" 
"${pythonEnv}bin/python" "${app}scripts/script.py arg1 arg2" 

그러나이 나는이 오류가 발생했습니다 (지금까지 터미널을 사용)이 스크립트를 실행할 때 물론 스크립트 디렉토리에 script.py가 있으며 올바른 액세스 권한을 가지고 있습니다.

-rwxrwxr-x 

무엇이 잘못 되었나요?

+1

디렉토리를 확인하십시오. 나는 디렉토리가 맞지 않다고 생각해. 당신이 당신의 스크립트를 어디에 두 었는지 확인하십시오. – orvi

+0

@orvi 오류에서 경로를 복사하고 있었으므로 디렉토리가 적합합니다. – Robin71

답변

2

오류 메시지를 읽으면 단순한 /var/www/project/scripts/../scripts/script.py이 아닌 /var/www/project/scripts/../scripts/script.py arg1 arg2 인 것으로 해석기가 나타납니다. 파일 이름에서 arg1arg2을 구분해야합니다.

또한 가상 환경을 활성화 한 후에 "${pythonEnv}bin/python" 대신 python을 쓸 수 있다고 생각합니다.

2

인용구로 인해 "${app}scripts/script.py arg1 arg2"을 스크립트 이름으로 호출하려고합니다. 존재하지 않습니다. 스크립트를 수정하여 수정할 수 있습니다.

${pythonEnv}bin/python ${app}scripts/script.py arg1 arg2 

필요에 따라 따옴표를 조정하지만 구체적으로 유지하십시오. 예를 들어, pythonEnv 변수를 인용해야하는 경우 "${pythonEnv}"을 수행하십시오.

관련 문제