Ich habe lange Zeit mit Versuch und Irrtum verbracht, daher werde ich die Ergebnisse alleine hochladen. Als ich die neueste Version von "chromedriver-binary" installiert habe, war die Hauptversion größer als "google-chrome-stabile" und es ist ein Fehler aufgetreten. Es scheint, dass Sie auf der Chrome-Seite etwas anderes als "stabil" verwenden können, aber ich habe mich entschieden, "chromedriver-binary" mit Chrome abzugleichen.
Dockerfile
FROM python
#Chrome-Installation
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add && \
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list && \
apt update && apt install -y google-chrome-stable
WORKDIR /python
COPY requirements.txt .
# chromedriver-Ordnen Sie die Hauptversion der Binärdatei Chrome zu
# google-chrome --version: "Google Chrome 0.0.0.0"Gibt eine Zeichenfolge wie zurück
# grep --only-matching: (In jeder Zeile)Gibt alle übereinstimmenden Teile der Reihe nach zurück
# head -n 1:Holen Sie sich nur die Hauptversion
# sed --in-place:Ich weiß es nicht
RUN sed -e s/chromedriver-binary/chromedriver-binary==`google-chrome --version | grep -o -E "[0-9]*" | head -n 1`.*/ -i requirements.txt
RUN pip install --upgrade pip && pip install -r requirements.txt
requirements.txt
altair
altair_saver
chromedriver-binary
jupyter
matplotlib
numpy
pandas
scipy==1.5
selenium
Der Titel sollte "altair", "altair_saver", "chromedriver-binary", "selen" sein.
main.py
import altair
import chromedriver_binary #PATH wird per Import übergeben;Wird nicht als Modul verwendet
altair.renderers.enable('altair_saver') #Das offizielle Dokument hatte ein Argument, um das Format anzugeben, aber ich habe es entfernt, weil ich wütend war
altair.Chart(...).....save('plot.png') #Erfolgreich
Recommended Posts