在嵌套資料夾 python 中新增程式碼時 Heroku 出錯

WBOY
發布: 2024-02-05 23:24:08
轉載
815 人瀏覽過

在嵌套文件夹 python 中添加代码时 Heroku 出错

問題內容

我有一個基本的heroku 應用程序,如果我的主應用程式檔案中不包含from src.rtctokenbuilder2 import rtctokenbuilder, role_publisher, time ,該應用程式運作得很好。我想新增一個資料夾 src,其中包含 agora rtc 令牌產生的程式碼。要新增程式碼,我只需從下面的連結中的 github 下載程式碼,然後將 src 資料夾複製並貼上到我的 python 專案中。我需要的 src 資料夾位於「dynamickey/agoradynamickey/python3/src」。一旦我將 src 資料夾放在同一目錄中,我就會使用上面的導入語句來導入令牌生成。

現在我做git add accesstoken.py accesstoken2.py chattokenbuilder2.py dynamickey.py dynamickey2.py dynamickey3.py dynamickey4.py dynamickey5.py 東西.py signalingtoken.py education_token_builder.py fpa_token_builder.py utils.py

#我提交新增內容並執行git push heroku master

透過執行此操作,heroku git 更新不會出現錯誤,並且表示該網站已更新。但是,當我嘗試查看已產生的範例令牌時,該網站顯示錯誤並表示使用 heroku 日誌來追蹤錯誤。日誌的輸出很長,但包括 from src.rtctokenbuilder2 import rtctokenbuilder、role_publisher、時間。 modulenotfounderror:沒有名為「src」的模組

#當我添加 src 資料夾並嘗試使用它時,我做錯了什麼?我的設定沒有任何問題,因為沒有上面的導入一切都正常。

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
登入後複製

需求.txt

Flask==3.0.1
gunicorn==21.2.0
Jinja2==3.1.3
登入後複製


正確答案


#確保src目錄下有__init__.py檔案。該檔案可以為空,但它的存在使得目錄成為 python 套件。

hustlerserver.py 中,您將從 src.rtctokenbuilder2 匯入。確保此路徑正確,並且 src 目錄中存在 rtctokenbuilder2.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():
    # rest of your code 
登入後複製

進行這些更改後,使用 git add . 添加所有更改,提交它們,然後推送到 heroku。

以上是在嵌套資料夾 python 中新增程式碼時 Heroku 出錯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!