2017-09-16 26 views
-1

我收到以下錯誤Python的瓶的Heroku無法導入模塊

"ModuleNotFoundError: No module named 'class1'" 

結構

- hello-world 
    - src 
     - __init__ 
     - main 
     - class1 
- Procfile 

main1文件看起來是這樣的:

from class1 import G 

APP = Flask(__name__) 
@APP.route('/', methods=['GET']) 
def index() -> str: 
    return 'We are alive' 

簡介:

web: gunicorn src.main:app --log-file - 

Heroku的日誌,向我們展示了以下錯誤:

ModuleNotFoundError: No module named 'class1'

我不知道我做錯了。我使用pipenv來安裝依賴關係,它包含gunicorn

+1

你的PYTHONPATH好像是'hello-world',所以它應該是'from src.class1 import G'。 –

+0

您需要將您的procfile更改爲'web:gunicorn src.main:APP --log-file -' –

回答

0

你必須導入使用類:

from .class1 import G 

不要忘了點。當你建立一個包時,你必須告訴你在哪裏使用這個相對路徑來編寫你的類。這稱爲內部包引用。

請參閱相應的doc

+0

它解決了我在HEROKU @ Y0da上的問題,但是在本地它表示沒有Module'__main __。class1' src不是一個包。我在本地運行命令'pipenv run python3 src/slack_service.py' – user8569455

+0

感謝您的幫助,它涉及到相同的問題,因爲它不會解決我的問題。我不知道你的意思,我沒有導入init文件。 – user8569455

+0

@ user8569455那麼錯誤是什麼?導入錯誤應該是固定的。 – Y0da

0

應該是這樣的

from hello-world.src.class1 import G 

第一重命名文件夾你好世界.. Python不承認操作數的類名或文件夾名稱。它會返回一個錯誤