我正在尝试使用 venv 在 Linux 中启动电报机器人。但只有手动激活 venv 时,机器人才会启动。
Python代码:
#!env/bin/python3
# -*- coding: utf-8 -*-
import config
import telebot
bot = telebot.TeleBot(config.token)
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message):
bot.send_message(message.chat.id, message.text)
if __name__ == '__main__':
bot.infinity_polling()
Run Code Online (Sandbox Code Playgroud)
机器人以命令启动:
root@ubuntu-s-1vcpu-1gb-ams3-01:~/jira_bot# source env/bin/activate
(env) root@ubuntu-s-1vcpu-1gb-ams3-01:~/jira_bot# python3 sreda_bot.py
Run Code Online (Sandbox Code Playgroud)
但如果我尝试在不激活 venv 的情况下启动它:
root@ubuntu-s-1vcpu-1gb-ams3-01:~/jira_bot# python3 sreda_bot.py
Traceback (most recent call last):
File "sreda_bot.py", line 4, in <module>
import telebot
ModuleNotFoundError: No module named 'telebot'
Run Code Online (Sandbox Code Playgroud)
最后,我在 shebang 行的 venv 中插入了解释器的完整路径:
#!/root/jira_bot/env/bin/python3
Run Code Online (Sandbox Code Playgroud)
用于./sreda_bot.py代替python3 sreda_bot.py. 而且效果很好。
| 归档时间: |
|
| 查看次数: |
8167 次 |
| 最近记录: |