J'ai pris beaucoup de temps d'essais et d'erreurs, je vais donc télécharger les résultats seul. Lorsque j'ai installé la dernière version de «chromedriver-binary», la version principale était plus grande que «google-chrome-stable» et une erreur s'est produite. Il semble que vous puissiez utiliser autre chose que "stable" du côté Chrome, mais j'ai décidé de faire correspondre "chromedriver-binary" avec Chrome.
Dockerfile
FROM python
#Installation de Chrome
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-Faire correspondre la version principale du binaire à Chrome
# google-chrome --version: "Google Chrome 0.0.0.0"Renvoie une chaîne comme
# grep --only-matching: (Dans chaque ligne)Renvoie toutes les pièces correspondantes dans l'ordre
# head -n 1:Obtenez uniquement la version majeure
# sed --in-place:Je ne sais pas
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
Le titre doit être lié à «altair», «altair_saver», «chromedriver-binary», «sélénium».
main.py
import altair
import chromedriver_binary #PATH est passé par import;Non utilisé comme module
altair.renderers.enable('altair_saver') #Le document officiel avait un argument pour spécifier le format, mais je l'ai supprimé parce que j'étais en colère
altair.Chart(...).....save('plot.png') #Réussi
Recommended Posts