我使用scraper.py
构建了一个简单的Web爬虫脚本python 3.6
,当我从终端执行时,该脚本运行得很好。现在,我想在登录计算机时自动运行它,因此我编写了一个简单的scraper_launcher.plist
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>scraper.job</string>
<key>ProgramArguments</key>
<array>
<string>./Users/me/Desktop/scraperFolder/scraper.py</string>
</array>
<key>StandardErrorPath</key>
<string>Users/me/Library/Logs/Errors/scraper.error</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
在我的Users/me/Library/LaunchAgents/
文件夹中。
我遇到的第一个问题是,在执行launchctl load scraper_launcher.plist
时,macO似乎默认使用python 2.7
并且脚本失败。为了解决此问题,我尝试在scraper.py
的开头添加指定python版本的shabang:#!/usr/bin/env python3
。
现在,当我在终端上执行./scraper.py
时,一切仍然正常,但是当我执行launchctl load scraper_launcher.plist
时,出现以下错误:
env: python3: No such file or directory
。
我想念什么?我有一个macOS High Sierra v10.13.6
。
PS:当然,我可以将scraper.py
重新编码为python 2.7
,但这不是重点,我想让它按原样工作,并理解为什么scraper_launcher.plist会出现这种错误。 / p>