我有一个基本的Heroku应用程序,如果我的主应用程序文件中不包括from src.RtcTokenBuilder2 import RtcTokenBuilder, Role_Publisher, time,它运行得很好.我想添加一个文件夹src,其中包含用于为Agora RTC生成令牌的代码.要添加代码,我只需在下面的链接中从Github下载代码,然后将src文件夹复制并粘贴到我的python项目中.我需要的src文件夹是"DynamicKey/AgoraDynamicKey/python3/src".一旦src文件夹位于同一目录中,我就使用上面的IMPORT语句导入令牌生成.
现在我做git add AccessToken.py AccessToken2.py ChatTokenBuilder2.py DynamicKey.py DynamicKey2.py DynamicKey3.py DynamicKey4.py DynamicKey5.py Packer.py RtcTokenBuilder.py RtcTokenBuilder2.py RtmTokenBuilder.py RtmTokenBuilder2.py SignalingToken.py education_token_builder.py fpa_token_builder.py utils.py
I提交加法并运行git push heroku master
通过这样做,Heroku Git更新没有错误,它说网站已经更新了.但是,当我try 查看已生成的示例令牌时,站点显示了一个错误,并告诉我使用Heroku日志(log)来跟踪该错误.日志(log)的输出很长,但包括from src.RtcTokenBuilder2 import RtcTokenBuilder, Role_Publisher, time. ModuleNotFoundError: No module named 'src'
当我添加src文件夹并try 使用它时,我做错了什么?我的设置没有其他问题,因为没有上面的导入,一切都运行得很好.
https://github.com/AgoraIO/Tools个
Hustlerserver.py
from flask import Flask, request
from src.RtcTokenBuilder2 import RtcTokenBuilder, Role_Publisher, time
app = Flask(__name__)
@app.route('/process_data', methods=['GET'])
def process_data():
x = int(request.args.get('x', 0))
y = request.args.get('y', 'default')
appId = "test"
appCertificate = "test"
expirationTimeInSeconds = 3600
channelName = y
uid = x
token = "random tok"
current_timestamp = int(time.time())
expired_ts = current_timestamp + expirationTimeInSeconds
token = RtcTokenBuilder.build_token_with_uid(appId, appCertificate, channelName, uid, Role_Publisher, token_expire=expired_ts, privilege_expire=expired_ts)
result = f'token is: {token}'
return f'<h1>{result}</h1>'
文件的配置文件
web: gunicorn hustlerserver:app
Requirments.txt
Flask==3.0.1
gunicorn==21.2.0
Jinja2==3.1.3