cronのPYTHONPATHの問題

cronのPYTHONPATHの問題

私はPATHを理解するためにcronを使ってPythonスクリプトを自動的に実行しようとしました。

まず、ユーザーcrontabを使ってみました。

crontab -e

私はcrontabを次のように設定しました。

PYTHONPATH=/home/dpa/anaconda3/bin/python
PATH=/home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
36 15 * * * python /home/dpa/PycharmProjects/Parser/Parser.py >> /tmp/mycommand.log 2>&1

スクリプトが実行されず、次のエラーが発生します。

/bin/sh: 1: python: not found

それからスーパーユーザーとして試してみてください。

sudo crontab -e

私はcronetabを次のように設定しました。

PYTHONPATH=/home/dpa/anaconda3/bin
PATH=/home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 
43 15 * * * su - dpa python /home/dpa/PycharmProjects/Parser/Parser.py >> /tmp/mycommand.log 2>&1

STDERRは次のようになります。

-su: python: No such file or directory

ベストアンサー1

まず、アクセス権があるので、rootホームディレクトリではなくホームディレクトリでコンパイルしてビルドすることをお勧めしますanaconda/opt

実際に行うことは、変数PATHをこのディレクトリのリストと同じに設定し、PYTHONPATHをanaconda問題を引き起こす実行可能ファイルがあるディレクトリと同じに設定することです。

必要なものを得るためのより良いアプローチは、ルートになってからシェルが次のようになると仮定することですbash

export PATH=/home/dpa/anaconda3/bin:$PATH
export LD_LIBRARY_PATH=/home/dpa/anaconda3/lib
export PYTHONHOME=/home/dpa/anaconda3
bash

これにより、anaconda pythonとそのライブラリを含むディレクトリを見つけ、bash新しいセッションを開始するようにパスとライブラリが設定されます。次に、pythonコマンドをcrontab

このように実行するのでrootあれば、あえてする必要もなくsu -、現状のまま実行しcrontab、ユーザー環境ではなくユーザー環境で設定しておく方が良いでしょう。rootPYTHONPATHPYTHONHOMEroot

より良い場合は、すべてスクリプトに入れて、スクリプト自体をcrontab

/optもう一度強調しますが、ユーザーのホームディレクトリではなく、ユーザーのホームディレクトリにanacondaをインストールすることをお勧めします。

おすすめ記事