此Q& A类似于Python Script not running in crontab calling pysaunter中提供的Q& A,但是按照Launchd& amp;的Plist。
我在virtualenv中成功运行python脚本,但是当我尝试在Launchd中安排它时,我收到了一个追踪错误,我的plist错误日志文件说“ImportError:没有名为sqlalchemy的模块”。该怎么做,该怎么办?
答案 0 :(得分:4)
首先,我尝试将.virtualenv sitepackages绝对路径添加到.bash_profile和.profile中的路径和python路径变量。我还尝试在launchd config中设置环境变量path和pythonpath。没有快乐。
最终解决的问题是在plist中添加PATH和PYTHONPATH的环境变量。哪个修好了?不确定,但两者都没有伤害任何东西。在这些环境变量中,我在.virtualenvs中包含了sitepackages的绝对路径。问题解决了。
HTH。
示例:
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key><string>/Users/user/.virtualenvs/oraenv/lib/python2.7/site-packages/</string>
<key>PYTHONPATH</key><string>/Users/user/.virtualenvs/oraenv/lib/python2.7/site-package/</string>
</dict>
答案 1 :(得分:0)
使用pipenv
,以上答案将简化为以下配置:
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/pipenv</string>
<string>run</string>
<string>python</string>
<string>python_script_in_working_directory.py</string>
</array>
<key>WorkingDirectory</key>
<string>/path/to/working/directory</string>