CainY 发表于 2022-3-13 22:15

腾讯云函数求助

之前申请了腾讯的云函数,打一直没怎么用过.

最近买了个东西,想用云函数定时给我发送物流信息的邮件.

但是总是测试失败……

程序在运行的时候是正常的,但是每次部署完测试的时候总是失败,提示我找不到bs4,求大神们帮我看一下有什么问题,解决一下.

另外关于云函数的使用有什么需要注意的也可以指点一下

求帮助

下面贴错误截图和代码



mess.py:
import requests as req
from bs4 import BeautifulSoup as bef
import time
import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

def m():
    url = "https://consignee.ecmsglobal.com/brige/showtracking?lang=zh&trackingno=订单号"
    headers = {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
    }
    r = req.get(url, headers)
    html = r.text
    t = bef(html, 'html.parser')
    where = t.find_all(name="div", attrs={"class": "e-route-process"})
    ti = t.find_all(name="div", attrs={"class": "time"})
    s = ""
    for k, l in zip(where, ti):
      n = k.find('p')
      #print(l.string)
       # print(n.string.text.strip().split('\xa0'))
      s = s+'\n'+l.string+'\n'+n.string.strip()+'\n['
      time_str = time.strftime('%Y年%m月%d日%H时%M分%S秒')
    #print(time_str+'\n'+s)
    return time_str+'\n'+s

if __name__ == '__main__':
    print(m())


mail.py:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from mess import m

my_sender='*@qq.com'   
my_pass = '*'            
my_user='*'      

def smail():
    ret=True
    s=m()
    try:
      msg=MIMEText(s,'plain','utf-8')
      msg['From']=formataddr(["来自自动发送",my_sender])
      msg['To']=formataddr(["FK",my_user])            
      msg['Subject']="日程"            

      server=smtplib.SMTP_SSL("smtp.qq.com", 465)
      server.login(my_sender, my_pass)
      server.sendmail(my_sender,,msg.as_string())
      server.quit()
    except Exception:
      ret=False
    return ret

if __name__ == '__main__':
    smail()



index.py:
# -*- coding: utf8 -*-

import json
from mail import smail

def main_handler(event, context):
    smail()
    print("成功")

if __name__ == '__main__':
    main_handler("key1","test value 1")






CainY 发表于 2022-3-13 22:42

邮寄发送的代码(mail.py)是复制的菜鸟教程的

YuanFang0w0 发表于 2022-3-14 01:26

提示找不到bs4是因为腾讯云函数的python环境没有预装这个包,你上传代码要在代码文件根目录里面带上需要的这个包,这样应该就行了!

arryboom 发表于 2022-3-14 02:53

云函数需要依赖包在当前目录下,在云函数编辑器页面上开个新终端然后
pip install --target=./ packagename

比如你图里报错bs找不到,那就是
pip install --target=./ BeautifulSoup

如果是python3就把pip换成pip3

CainY 发表于 2022-3-14 13:29

YuanFang0w0 发表于 2022-3-14 01:26
提示找不到bs4是因为腾讯云函数的python环境没有预装这个包,你上传代码要在代码文件根目录里面带上需要的 ...

但是我在云函数的vs的终端里用pip安装了一次bs4,在云函数里单独的运行某一个文件都是正常的。
我用pip安装了也不算数吗?
那么怎么在根目录里带上这个包呢?能提示一下不?

CainY 发表于 2022-3-14 13:30

arryboom 发表于 2022-3-14 02:53
云函数需要依赖包在当前目录下,在云函数编辑器页面上开个新终端然后
pip instal ...

感谢回复
等我回去试一试

CainY 发表于 2022-3-14 13:30

YuanFang0w0 发表于 2022-3-14 01:26
提示找不到bs4是因为腾讯云函数的python环境没有预装这个包,你上传代码要在代码文件根目录里面带上需要的 ...

感谢回复

CainY 发表于 2022-3-14 19:09

YuanFang0w0 发表于 2022-3-14 01:26
提示找不到bs4是因为腾讯云函数的python环境没有预装这个包,你上传代码要在代码文件根目录里面带上需要的 ...

解决了老哥,确实是你说的那样
感谢

CainY 发表于 2022-3-14 19:11

arryboom 发表于 2022-3-14 02:53
云函数需要依赖包在当前目录下,在云函数编辑器页面上开个新终端然后
pip instal ...

解决了,确实是要跟代码文件在一个目录下
感谢

叫我小王叔叔 发表于 2022-4-2 00:18

arryboom 发表于 2022-3-14 02:53
云函数需要依赖包在当前目录下,在云函数编辑器页面上开个新终端然后
pip instal ...

大佬,请教,为什么我的云函数编辑器那没有终端???你们有,你们是什么版本的浏览器和操作系统啊?
页: [1]
查看完整版本: 腾讯云函数求助