相关疑难解决方法(0)

具有修改环境的Python子进程/ Popen

我认为运行带有稍微修改环境的外部命令是一种非常常见的情况.这就是我倾向于这样做的方式:

import subprocess, os
my_env = os.environ
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)
Run Code Online (Sandbox Code Playgroud)

我有一种直觉,觉得有更好的方法; 看起来好吗?

python subprocess popen

255
推荐指数
6
解决办法
16万
查看次数

我在哪里可以设置crontab将使用的环境变量?

我每小时都有一个crontab..bash_profile当用户从终端运行作业时,运行它的用户在该工作中具有环境变量,但是,显然这些在运行时不被crontab拾取.

我试着在设置它们.profile.bashrc,但他们似乎仍然没有得到回升.有谁知道我可以把crontab可以拿到的环境变量放在哪里?

unix linux crontab environment-variables

250
推荐指数
12
解决办法
26万
查看次数

添加到python路径mac os x

我想

import sys
sys.path.append("/home/me/mydir")
Run Code Online (Sandbox Code Playgroud)

将一个dir附加到我的pythonpath

如果我打印sys.path我的目录在那里.

然后我打开一个新命令,它就不存在了.

但不知何故,Python无法导入我保存在该目录中的模块.

我究竟做错了什么?

我读过.profile或.bash_profile就可以了.

我必须添加:

PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH
Run Code Online (Sandbox Code Playgroud)

为了使它工作?

python macos add pythonpath

54
推荐指数
3
解决办法
20万
查看次数

如何在python脚本中修改系统路径变量?

我正在尝试从cron运行python脚本,但它没有正常运行,所以我假设它的路径env变量不同.反正有没有在python脚本中更改变量?

python path environment-variables

8
推荐指数
3
解决办法
3万
查看次数

为什么Python脚本可以在CLI中运行,但是从cron作业调用时却不行?

我创建了一个Python脚本,我想通过Ubuntu服务器上的cronjob每天运行.

这是从命令行运行此脚本的方式:

python  /home/username/public_html/IDM_app/manage.py cleanUpPosts  
Run Code Online (Sandbox Code Playgroud)

从CLI调用时,脚本运行正常.
但是,当我尝试通过cronjob运行脚本时,脚本无法正常运行.日志文件显示正在请求脚本,但它们未显示脚本未正确执行的原因.

我在脚本中添加了Python日志记录.从CLI调用脚本时,日志记录正确进行.从cron调用时,python日志记录无法写入其日志文件.

我怀疑问题是cronjob在请求脚本时没有运行shell.

我似乎无法找到cron守护进程记录错误的任何地方.

我创建了/var/log/cron.log
然而这似乎没有更新.

由于我认为问题源于ENV变量,我试图让cronjob为自己显示ENV.

这是我的crontab的样子:
$ crontab -u username -e

m h  dom mon dow   command  
43 17 * * * /bin/sh python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
43 17 * * * python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
45 21 * * * echo "-----------------"; echo "import os; print os.environ" | python  
47 21 * * * /bin/sh echo "------with shell-------"; echo "import os; printos.environ" | python  
MAILTO=bryanw@nowhere.com  
Run Code Online (Sandbox Code Playgroud)

我以为它会输出到屏幕,但它没有.ENV变量在哪里输出?

无论如何,这里是日志文件:

# tail -n 5 /var/log/*.log   
==> …
Run Code Online (Sandbox Code Playgroud)

python django cron environment-variables

3
推荐指数
1
解决办法
1085
查看次数