4

私は、PHPを介して実行されているPython2.7に依存する大きなシステムをセットアップしています。呼び出しは常に次のようなものです。

exec('python test.py');

しかし、私が何をしても、PHPはファイルの実行にPython2.4を使い続けます。システムのサイズが原因で、プログラミングを変更することはできませんが、「python」がpython2.7を直接指すようにする必要があります。

周りを検索することで、phpenvを変更する必要があるという結論に達しました。

echo getenv("PYTHONPATH"); // NOTHING
echo getenv("PATH"); // /bin:/usr/bin

私はそれを介してそうすることができますputenv(例えばputenv("PATH=/usr/bin/python2.7:".$_ENV["PATH"]:)、しかしphpは私がそれを何に変えてもpython2.4を実行し続けます。

誰かが簡単な解決策を手に入れたことを願っています:)

4

3 に答える 3

3

代わりにこれを行うことはできませんか?

exec('/usr/bin/python2.7/python test.py');
于 2013-03-10T18:31:29.840 に答える
1

別のオプションとして、スクリプトtest.pyの1行目でインタープリターへのパスを設定できます

#!/usr/local/bin/python2.7 

ただし、test.pyを実行可能にする必要があります

chmod +x path_to_file/test.py

phpから実行します

exec('path_to_file/test.py');

PSは注意深い管理者であり、安全のためにサーバーのexec機能を無効にすることがあります。disable_functions = "popen、exec、system、passthru、proc_open、shell_exec"...。

于 2013-03-10T19:53:23.597 に答える
0

フルパスを使用できない場合は、エイリアスを試してください。

alias python='/usr/bin/python2.7'
python --version
Python 2.7.2
于 2013-03-10T18:34:30.103 に答える