Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Virtualenv不会更改Cronjob中的PYTHONPATH_Python_Cron_Centos_Virtualenv - Fatal编程技术网

Virtualenv不会更改Cronjob中的PYTHONPATH

Virtualenv不会更改Cronjob中的PYTHONPATH,python,cron,centos,virtualenv,Python,Cron,Centos,Virtualenv,Crontab代码: SHELL=/bin/bash * * * * * /var/www/envs/venv/myproj/scripts/send_hit.sh .sh脚本: #!/bin/bash cd /var/www/envs/venv source bin/activate echo $PYTHONPATH echo $PATH 输出: X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/bash>

Crontab代码:

SHELL=/bin/bash
* * * * * /var/www/envs/venv/myproj/scripts/send_hit.sh
.sh脚本:

#!/bin/bash
cd /var/www/envs/venv
source bin/activate

echo $PYTHONPATH
echo $PATH
输出:

X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>


/var/www/envs/venv/bin:/usr/bin:/bin

cron(8)守护进程会自动设置多个环境变量。SHELL设置为/bin/sh,LOGNAME和HOME是从crontab所有者的/etc/passwd行设置的。HOME和SHELL可能会被crontab中的设置覆盖;LOGNAME可能不会

您应该在crontab文件或脚本中显式设置
$PYTHONPATH

#!/bin/bash
cd /var/www/envs/venv
source bin/activate

PYTHONPATH=/path/to/python
export PYTHONPATH

echo $PYTHONPATH
echo $PATH
有几种在cron内设置环境变量的方法。

cron(8)守护进程会自动设置多个环境变量。SHELL设置为/bin/sh,LOGNAME和HOME是从crontab所有者的/etc/passwd行设置的。HOME和SHELL可能会被crontab中的设置覆盖;LOGNAME可能不会

您应该在crontab文件或脚本中显式设置
$PYTHONPATH

#!/bin/bash
cd /var/www/envs/venv
source bin/activate

PYTHONPATH=/path/to/python
export PYTHONPATH

echo $PYTHONPATH
echo $PATH

在cron中有一些设置环境变量的方法。

无法从crontab访问PYTHONPATH变量。您应该在脚本中设置PYTHONPATH变量

#!/bin/bash
cd /var/www/envs/venv
source bin/activate

PYTHONPATH=/path/to/python
export PYTHONPATH

echo $PYTHONPATH
echo $PATH

无法从crontab访问PYTHONPATH变量。您应该在脚本中设置PYTHONPATH变量

#!/bin/bash
cd /var/www/envs/venv
source bin/activate

PYTHONPATH=/path/to/python
export PYTHONPATH

echo $PYTHONPATH
echo $PATH

bin/activate
不更新/设置
PYTHONPATH
环境变量(您只需grep文件)。它只更新
PATH
以包含env的
bin
bin/activate
不更新/设置
PYTHONPATH
环境变量(您只需grep文件)。它只更新
路径
以包括环境的
bin