Python脚本通过shell运行但不能通过supervisord运行

Posted

技术标签:

【中文标题】Python脚本通过shell运行但不能通过supervisord运行【英文标题】:Python script running via shell but not working via supervisord 【发布时间】:2017-12-05 23:34:24 【问题描述】:

我面临的错误是:

 File "/usr/local/lib/python3.5/dist-packages/oauth2client/crypt.py", line 23, in <module>
    from oauth2client import _pure_python_crypt
  File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
    from pyasn1_modules.rfc2459 import Certificate
  File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
    from pyasn1.type import opentype
ImportError: cannot import name 'opentype'

认为已按照this *** answer 中的说明解决:

sudo apt-get --reinstall install python-pyasn1 python-pyasn1-modules
pip3 install --upgrade google-auth-oauthlib

当我通过 supervisorctl 运行我的程序时,sudo supervisorctl restart at_ussd 我得到了上面的错误。 但是当我通过 shell sudo python3 at_ussd.py 运行我的程序时,程序运行顺利。

请帮我解决这个问题,以便我可以继续使用主管进行管理!

【问题讨论】:

【参考方案1】:

tl;博士;搜索系统上安装的多个 pyasn1/pyasn1-modules 包。

从追溯看来,您拥有最新的 pyasn1-modules (0.2.1) 和一些较旧(且不兼容)的 pyasn1,例如

但是,当您从用户 shell 运行程序时,会选择 pyasn1-modules/pyasn1 的兼容组合。它可以是较旧的 pyasn1-modules 或较新的 pyasn1。

【讨论】:

以上是关于Python脚本通过shell运行但不能通过supervisord运行的主要内容,如果未能解决你的问题,请参考以下文章

通过 sqlplus 运行 shell 脚本

Shell 脚本:从 shell 脚本中执行 python 程序

[无穷b''问题,运行shell脚本通过烧瓶

远程(jenkins)调用shell 不能正常结束

java 调用 shell 脚本

命令行通过执行shell脚本启动java类,命令行“卡住”or“挂起”or“停顿”,不能输入新的命令了,怎么办