簡體   English   中英

導入matplotlib在Heroku上失敗

[英]import matplotlib failing on Heroku

[(幾個月前基本上與此相同: 導入matplotlib在heroku上沒有名為_tkinter的模塊失敗 。但是,提供的唯一解決方案似乎不起作用。(不幸的是我不能評論那里給出的答案,因為我沒有足夠的StackOverflow信譽。))]

我一直在我的應用程序中使用matplotlib進行策划。 一切都在當地很好。 但是,當我將我的應用程序推送到Heroku時,我得到錯誤:

import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

我試圖繞過Tkinter:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt, mpld3

但是,這仍然會引發同樣的錯誤。

有沒有人為此找到了解決方案或者有matplotlib的Heroku應用程序正在運行? 我正在運行Python 2.7.13(這也是Heroku在推送應用程序時安裝的版本)。

對我來說,這有效:

將matplotlib后端從tkinter更改為其他內容。 在程序的最開始這樣做:

import matplotlib
matplotlib.use('Agg')

這樣程序的其余部分將使用您設置的后端('Agg','SVG'等)

另一個選擇是嘗試和matplotlibrc文件混淆: https//matplotlib.org/users/customizing.html#the-matplotlibrc-file

我聯系了Heroku支持並得到了以下答案:

默認的Heroku Python構建版不包含成功導入tkinter所需的庫。您可以在此處找到我們默認提供的基礎庫列表: https//devcenter.heroku.com/articles/cedar-ubuntu -packages

在這些情況下,我們為開發人員提供了使用第三方構建包擴展平台的機會https://devcenter.heroku.com/articles/third-party-buildpacks ,其中許多可以在https://elements.heroku瀏覽.com / buildpacks這些可以在部署時安裝額外的包和依賴項。

請注意,第三方buildpack是一個選項,但buildpack本身不受支持。 他們可能不會被原作者維護並停止工作。 如果是這種情況,您需要聯系原作者,看看他們是否可以提供幫助。 在這個SO帖子上有一些建議,其他用戶已經使用自定義Python buildpacks成功運行它https://stackoverflow.com/a/18184536

另一種選擇可能是在這里使用實驗性的Apt buildpack: https//github.com/heroku/heroku-buildpack-apt你需要運行

heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt

您還需要在項目的根目錄中添加名為Aptfile的文件,其中包含以下內容:

python3-tk

不幸的是,此Aptfile沒有相同的依賴項解析,因此您必須手動指定任何其他包。

我安裝了以下buildpack: https//github.com/thenovices/heroku-buildpack-scipy 這解決了matplotlib的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM