2017-02-15 13 views
0

私はpythonスクリプトを実行する必要があるPHPアプリケーションを作成しています。私はvirtualenvを使用する必要があります。プロジェクトカタログでは、私はenvディレクトリを作成し、内部にはpythonという仮想envを作成しました。私は実行し、このbashスクリプトたいのですが、スクリプトを入れている別のカタログでは:virtualenvでpythonスクリプトを実行するBashスクリプト

#!/bin/bash 

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

しかし、私は(これまでの端末を使用して)、このスクリプトを実行するとき、私はこのエラーを得た:

/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 

もちろんscriptsディレクトリにscript.pyがあり、適切なアクセス許可を持っています:

-rwxrwxr-x 

私は間違っていますか?

+1

ディレクトリを確認してください。私はディレクトリが正しいとは思わない。あなたのスクリプトをどこに置くかチェックする。 – orvi

+0

@orviエラーからパスをコピーしていたので、ディレクトリが正しい – Robin71

答えて

2

あなたのエラーメッセージを読んで、そのファイルが/var/www/project/scripts/../scripts/script.py arg1 arg2であり、単に/var/www/project/scripts/../scripts/script.pyではないと解釈するようです。ファイル名からarg1arg2を区切る必要があります。

また、仮想環境を有効にした後は、"${pythonEnv}bin/python"の代わりにpythonと書くこともできます。

2

引用のため、"${app}scripts/script.py arg1 arg2"をスクリプト名として呼び出そうとしていますが、これは存在しません。あなたはそれを修正するためにスクリプトを変更することができます。

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

必要に応じて、あなたの引用を調整しますが、特定のそれを維持します。たとえば、pythonEnv変数を引用する必要がある場合は、"${pythonEnv}"を実行します。

関連する問題