Casper Python脚本失败,出现“/usr/bin/Python”,但不是“Python”`

2024-09-27 23:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行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路径和脚本路径)。”


Tags: topathpytest路径脚本bin套件
1条回答
网友
1楼 · 发布于 2024-09-27 23:27:04

正如Arcege解释的here“Cron对您的shell一无所知;它是由系统启动的,因此它有一个最小的环境。如果你想要任何东西,你需要自己把它带来。”

很可能,Cron忘记了在会话中设置的某个变量。有三种选择:

1.)您可以Nischal那样为特定命令设置环境变量。在

要点:

* * * * * . $HOME/.profile; python /path/to/myScript.py

2.)为整个Crontab设置环境变量,就像他们做的一样here。在

要点:

^{pr2}$

More在Cron中设置环境变量。)


3.)在脚本中设置环境变量。Python的urllib2显然需要http_proxy变量,因此如果使用该变量,可能会出现问题。您可以使用os来设置它(source),或者更好的方法是指定urllib2应该像{a8}here那样使用ProxyHandler。在

要点:

proxy = urllib2.ProxyHandler({'http': '127.0.0.1'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.example.com')

相关问题 更多 >

    热门问题