繁体   English   中英

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

[英]Finding modules when running python with virtualenvs, in launchd

此问答与Python脚本中提供的问题类似, 不是在调用pysaunter的crontab中运行 ,而是以Launchd&Plists的形式出现。

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

起初我尝试将.virtualenv sitepackages绝对路径添加到.bash_profile和.profile中的路径和python路径变量。 我还尝试在launchd config中设置环境变量path和pythonpath。 没有快乐。

最后修复它的是为plist和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>

使用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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM