gpt4 book ai didi

在 rc.local 中启动时出现 python 脚本问题(没有名为...的模块)

转载 作者:行者123 更新时间:2023-12-02 05:21:15 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,经过几个小时的研究,我正在寻求有关该问题的帮助/解释。这很简单,我用 python 编写了一个 cgi 服务器,我正在使用一些库,例如 pynetlinux。当我与任何用户从终端启动脚本时,它工作正常,没有错误,没有依赖性问题。但是当我尝试使用 rc.local 中的脚本启动它时,以下代码会产生错误。


导入 sys、cgi、pynetlinux、日志记录

它产生以下错误:

   Traceback (most recent call last):      File "/var/simkiosk/cgi-bin/load_config.py", line 3, in       import cgi, sys, json, pynetlinux, loggin   ImportError: No module named pynetlinux

其他依赖项会产生类似的问题。我怀疑有一些事情,比如用户在 rc.local(root normaly)中执行脚本并尝试在网络上找到的一些东西但没有成功。

有人可以帮助我吗?

提前致谢。

问候。

奥利314

最佳答案

首先,您需要确定您要导入的模块是否安装正确。您可以检查模块名称是否存在于pip list


然后,在 python shell 中,检查 Python 寻找模块的路径:

    import sys
sys.path

在我的例子中,输出是:

['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']


最后,将这些路径附加到/etc/rc.local 中的 $PATH 变量。这是我的 rc.local 的示例:

    #!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing

export PATH="$PATH:/usr/lib/python3.4:/usr/lib/python3.4/plat-x86_64-linux-gnu:/usr/lib/python3.4/lib-dynload:/usr/local/lib/python3.4/dist-packages:/usr/lib/python3/dist-packages"

# Do stuff

exit 0

关于在 rc.local 中启动时出现 python 脚本问题(没有名为...的模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com