python - 在 launchd 中使用 virtualenvs 运行 python 时查找模块

标签 python virtualenv launchd

此问答类似于 Python Script not running in crontab calling pysaunter 中提供的问答, 但以 Launchd 和 Plists 的形式出现。

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

最佳答案

起初我尝试将 .virtualenv sitepackages 绝对路径添加到 .bash_profile 和 .profile 中的路径和 python 路径变量。我还尝试在 launchd 配置中设置环境变量路径和 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>

关于python - 在 launchd 中使用 virtualenvs 运行 python 时查找模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716181/

相关文章:

python-3.x - 找不到已解决的包

macos - 在 OS X 中使用 launchd 加载和配置内核扩展

objective-c - SMJobSubmit() 能否用于执行由 SMJobBless 安装的特权助手?

python - 具有多个模型(表)的 Django 分页

python - 通过 Django 发送电子邮件 - WinError 10060 连接尝试失败和 GetAddrInfo 错误

Python venv(虚拟环境)使用了错误的 Python 版本

iphone - 为 iPhone 编写 LaunchDaemon

Python protobuf解码base64字符串

python - 加快计算返回

python - 修改大型cython项目的工作流程