当我运行python deamon.py
时,测试套件正常运行;但是,当我用/usr/bin/python
运行它时,它会抛出一个Casper.waitfor()
超时警告,因为它显然无法读取DOM元素。在
// Fails:
/usr/bin/python /path_to_deals/deals/deamon.py
// Succeeds:
python /path_to_deals/deals/deamon.py
目录结构如下:
deals/
deamon.py test.js
deamon.py
是在test.js
文件中启动casperjs
测试套件的脚本。在
有谁能解释一下为什么python
起作用而/usr/bin/python
不起作用——以及我该如何解决这个问题?在
讨论更新:“当我这样做时,python deamon.py
只有当我把它放在Cron中时才会失败(在Cron中我必须指定确切的python路径和脚本路径)。”
正如Arcege解释的here,“Cron对您的shell一无所知;它是由系统启动的,因此它有一个最小的环境。如果你想要任何东西,你需要自己把它带来。”
很可能,Cron忘记了在会话中设置的某个变量。有三种选择:
1.)您可以像Nischal那样为特定命令设置环境变量。在
要点:
2.)为整个Crontab设置环境变量,就像他们做的一样here。在
要点:
^{pr2}$(More在Cron中设置环境变量。)
3.)在脚本中设置环境变量。Python的
urllib2
显然需要http_proxy
变量,因此如果使用该变量,可能会出现问题。您可以使用os
来设置它(source),或者更好的方法是指定urllib2
应该像{a8}here那样使用ProxyHandler
。在要点:
相关问题 更多 >
编程相关推荐