linux运行python脚本 提示模块不存在_当python脚本在linux服务中启动时,找不到模块的错误...

本文介绍了一种在Linux服务器上使用systemd设置Python服务时遇到的问题:服务启动失败,原因是找不到所需的Python模块。问题根源在于模块安装路径与服务启动用户不符。文中详细解释了解决方案:通过修改service文件中的User参数确保服务使用正确的用户身份启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个python脚本,拷贝到linux的服务器中运行.测试运行正常

python3 myPythonScript.py

但是,如果设置服务,则启动失败.

设置服务的方式是这样的,到/lib/systemd/system下添加myservice.service文件,内容如下:

[Unit]

Description=描述

[Service]

ExecStart=/usr/bin/python3 /home/user/heartbeat.py

[Install]

WantedBy=multi-user.target

用sudo service myservice start启动,然后用sodu service myservice status查看启动结果,结果启动失败,原因是找不到某python模块.

后经过查阅资料,原来是用pip命令安装模块的时候,默认安装到我自己用户名下了.而服务启动的时候,默认以root用户启动,因此就找不到这个模块了.

所以,服务启动的时候,设置启动用户为自己.就可以解决问题.service文件的配置如下

[Unit]

Description=描述

[Service]

WorkingDirectory=/home/你的用户名/

User=你的用户名

ExecStart=/usr/bin/python3 /home/user/heartbeat.py

[Install]

WantedBy=multi-user.target

当然,用root用户来启动服务,也不会有这个问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值