gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:49 27 4
gpt4 key购买 nike

当我运行 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 时它才会失败(我必须在其中指定确切的 python 路径作为以及脚本路径)。”

最佳答案

作为Arcege解释 here , “Cron 对您的 shell 一无所知;它由系统启动,因此它具有最小的环境。如果您需要任何东西,您需要自己带入。”

很有可能,您的 session 中设置的一些变量被 Cron 忘记了。以下是三个选项:

1.) 您可以将特定命令的环境变量设置Nischalhere .

要点:

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

2.) 像他们一样为整个 Crontab 设置环境变量 here .

要点:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * python /path/to/myScript.py

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


3.) 在脚本中设置环境变量。 Python 的 urllib2 显然需要 http_proxy 变量,所以如果您使用它,您可能会遇到问题。您可以使用 os 来设置它 ( source ) 或者 - 可能更好 - 您可以指定 urllib2 应该使用的代理 ZelluXhere使用 ProxyHandler

要点:

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

关于python - Casper Python 脚本失败,出现 `/usr/bin/python` 但不是 `python`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24824320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com