3

这个问答类似于Python Script 中提供的一个,它不是在 crontab 中调用 pysaunter 运行的,而是根据 Launchd 和 Plists 提出的。

我在 virtualenv 中成功运行了 python 脚本,但是当我尝试在 Launchd 中安排它时,我收到了我的 plist 错误日志文件的回溯错误,上面写着“ImportError:没有名为 sqlalchemy 的模块”。怎么办,怎么办?

4

2 回答 2

4

起初我尝试将.virtualenv sitepackages 绝对路径添加到.bash_profile 和.profile 中的path 和python 路径变量。我还尝试在启动配置中设置环境变量路径和 pythonpath。没有喜悦。

最终解决的是将 PATH 和 PYTHONPATH 的环境变量添加到 plist 中。哪个修好了?不确定,但同时拥有它们并不会伤害任何东西。在这些环境变量中,我在 .virtualenvs 中包含了站点包的绝对路径。问题解决了。

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>
于 2013-07-18T06:32:59.300 回答
1

使用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>
于 2019-02-06T08:34:30.163 回答