Der Cloud Shell Editor von GCP war mit der Python-Entwicklungsumgebung verstopft, sodass ich es geschafft habe, ihn auf einem freien Grundstück neu zu erstellen.

Überblick

Gegen Ende 2019 habe ich daran gearbeitet, Python auf der Cloud-Shell von GCP zu entwickeln und für die Cloud-Funktion bereitzustellen. Nachdem ich eine Weile entwickelt und einige Monate verlassen hatte, ist kürzlich ein neues Entwicklungsprojekt aufgetreten. Als ich überlegte, es bereitzustellen und zu testen, begann ich, verschiedene Fehler bei der Bereitstellung zu beseitigen. Ich habe versucht, damit umzugehen, während ich mir den Fehler angesehen habe, aber es hat nicht funktioniert, und als ich die Umgebung endgültig zurückgesetzt habe, hat es funktioniert, also werde ich es zusammenfassen.

Das Aktualisieren und Wechseln von Versionen von Python und Pip war die größte Pattsituation.

Verfahren

  1. Erstellen Sie ein Backup
  2. Befolgen Sie das offizielle Verfahren zum Zurücksetzen der Umgebung
  3. Aktualisieren Sie Python mit pyenv
  4. Schalten Sie pip auf pip3 und aktualisieren Sie
  5. Befolgen Sie die offiziellen Anweisungen, um gcloud zu aktualisieren
  6. Stellen Sie die Arbeitsdateien wieder her
  7. Aktualisieren Sie von den Anforderungen.txt
  8. Stellen Sie danach den Fehler bereit und beseitigen Sie ihn entsprechend

1. Erstellen Sie ein Backup

Nachdem Sie die installierten Pakete mit "pip freeze> require.txt" exportiert haben, laden Sie alle Dateien im Cloud Sell Editor herunter. Die Datei wird von tar gelöscht. Es ist nicht erforderlich, es zu dekomprimieren, da es später wieder als Teer angehoben wird.

2. Befolgen Sie das offizielle Verfahren zum Zurücksetzen der Umgebung

** Cloud Shell deaktivieren oder zurücksetzen ** https://cloud.google.com/shell/docs/resetting-cloud-shell?hl=ja

Gemäß sudo rm -rf $HOME Es scheint, dass Sie Shell nach dem Zurücksetzen neu starten können.

3. Aktualisieren Sie Python mit pyenv

Diese Qiita war hilfreich, danke an die Person, die sie geschrieben hat.

** So aktualisieren Sie die Python-Version von Cloud Shell für GCP ** https://qiita.com/greenteabiscuit/items/cbecdf4f84f0b73ff96e

Ich laufe auf Python 3.7.9.

4. Schalten Sie pip auf pip3 und aktualisieren Sie

Wenn Sie so pipen, wie es ist, wird es als Python v2 angezeigt. Seien Sie also vorsichtig. Wenn sie unbeaufsichtigt bleiben, wurde beim Bereitstellen der Cloud-Funktion ein Fehler ausgegeben. Daher scheint es besser, auch hier pip3 zu verwenden. Wechseln Sie zur Befehlsreferenz auf der folgenden Site https://www.it-swarm-ja.tech/ja/pip/pip3%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92pip%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F/831723093/

alias pip=pip3 Ich kann gehen.

Verwenden Sie danach pip install -U pip, um auf die neueste Version zu aktualisieren.

5. Befolgen Sie die offiziellen Anweisungen, um gcloud zu aktualisieren

Ich musste auch gcloud aktualisieren. Offiziell ist dies das Verfahren:

gcloud components update https://cloud.google.com/sdk/gcloud/reference/components/update

gcloud components update Ist der Befehl. Auf Shell kann es jedoch nicht mit diesem aktualisiert werden:

sudo apt-get update && sudo apt-get --only-upgrade install google-cloud-sdk-app-engine-python-extras google-cloud-sdk-kpt google-cloud-sdk-minikube google-cloud-sdk-app-engine-java google-cloud-sdk-datalab google-cloud-sdk-kind google-cloud-sdk-app-engine-grpc google-cloud-sdk-firestore-emulator google-cloud-sdk-bigtable-emulator google-cloud-sdk-skaffold kubectl google-cloud-sdk-cbt google-cloud-sdk-pubsub-emulator google-cloud-sdk-anthos-auth google-cloud-sdk google-cloud-sdk-datastore-emulator google-cloud-sdk-app-engine-python google-cloud-sdk-spanner-emulator google-cloud-sdk-cloud-build-local google-cloud-sdk-app-engine-go

Sie werden aufgefordert, einen sehr langen Befehl auszuführen. Als ich es ausführte, wurde es ordnungsgemäß aktualisiert.

6. Stellen Sie die Arbeitsdateien wieder her

Laden wir den Teer hoch, der in 1 heruntergeladen wurde. Sie können D & D ausführen oder mit der rechten Maustaste auf eine beliebige Stelle in der Dateiliste klicken → Dateien hochladen. Entpacken Sie nach dem Hochladen mit dem Befehl tar. Ich bezog mich auf diese Qiita, um zu erfahren, wie es geht:

** Komprimieren und Dekomprimieren von [Linux] -Dateien ** https://qiita.com/supersaiakujin/items/c6b54e9add21d375161f

tar -xvf xxxx.tar Befehl oben

7. Aktualisieren Sie von den Anforderungen.txt

Lassen Sie uns nun das Pip-Paket neu installieren. Ich habe auf die folgende Seite verwiesen.

** Massenpaketinstallation mit require.txt mit Python, pip ** https://note.nkmk.me/python-pip-install-requirements/

pip install -r requirements.txt

Gelegentlich erhalte ich die Fehlermeldung "Dieses Paket kann nicht ohne ein anderes Paket installiert werden". In diesem Fall ist es jedoch recht gut, wenn Sie den Paketnamen angeben und installieren. Ich verwende nur die BigQuery-API, musste aber die folgenden Pakete installieren:

pip install google-cloud-bigquery

8. Stellen Sie danach den Fehler bereit und beseitigen Sie ihn entsprechend

Danach können wir die Fehler ~~ unendlich beseitigen, indem wir gcloud functions deploy ~~ ausführen.

Nachtrag

Möglicherweise müssen Sie sich keine Gedanken über das Ändern der Version mit der blauen Leiste am unteren Rand des Editor-Bildschirms machen.

Recommended Posts

Der Cloud Shell Editor von GCP war mit der Python-Entwicklungsumgebung verstopft, sodass ich es geschafft habe, ihn auf einem freien Grundstück neu zu erstellen.
Als ich in IPython versuchte, den Wert zu sehen, war es ein Generator, also kam ich auf ihn, als ich frustriert war.
Ich möchte eine GUI-Entwicklungsumgebung mit Python oder Golang auf dem Mac einrichten
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Ich habe versucht, eine Mac Python-Entwicklungsumgebung mit pythonz + direnv zu erstellen
Beachten Sie, dass ich süchtig danach war, TensowFlow einzurichten
Als ich in IPython versuchte, den Wert zu sehen, war es ein Generator, also kam ich auf ihn, als ich frustriert war.
Wenn es schwierig ist, beim Senden von E-Mails mit Python lokal einen SMTP-Server einzurichten.
Der Cloud Shell Editor von GCP war mit der Python-Entwicklungsumgebung verstopft, sodass ich es geschafft habe, ihn auf einem freien Grundstück neu zu erstellen.
Ich habe es geschafft, weil der Brauch, eine Zip mit einem Passwort an eine E-Mail anzuhängen und "Ich werde Ihnen das Passwort separat senden" zu sagen, mühsam ist.
Als ich versuchte, das Root-Passwort mit ansible zu ändern, konnte ich nicht darauf zugreifen.
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Ich konnte AWS-Batch mit Python, Moto verspotten, also werde ich es verlassen
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Beachten Sie, dass ich süchtig danach war, TensowFlow einzurichten
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Ich möchte mit einem Roboter in Python arbeiten.
Python: Kann in Lambda wiederholt werden
Richten Sie mit Sublime Text 2 eine Python-Entwicklungsumgebung ein
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Wovon ich süchtig war, als ich mit riesigen Dateien in einer Linux 32-Bit-Umgebung umging
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Es war großartig, die Python-Datei in Raspberry Pi mit der Remote-Funktion von Atom zu bearbeiten
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Da es Doppelgenger gab, habe ich versucht, es mit künstlicher Intelligenz zu unterscheiden (lacht) (Teil 1)
Ich habe ein Skript geschrieben, um mit AWS Lambda + Python 2.7 schnell eine Entwicklungsumgebung für Twitter Bot zu erstellen
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
Ich habe versucht, den Unterschied zwischen A + = B und A = A + B in Python herauszufinden
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
[Du musst es wissen! ] Ich habe versucht, eine Python-Umgebung gewinnbringend einzurichten, indem ich die Privilegien von Universitätsstudenten voll ausgenutzt habe.
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Es fiel mir schwer, meine Hausaufgaben zu machen, deshalb verwendete ich Python für das Management Accounting.
Selbst wenn ich jpg in png konvertiert habe, habe ich es geschafft, weil die Transparenz nicht manipuliert wurde
Ich habe GhostScript mit Python ausgeführt, das PDF in Seiten aufgeteilt und es in ein JPEG-Bild konvertiert.
Eine Geschichte, nach der ich süchtig war, als ich in Go nil als Funktionsargument angab
[Python] Ich war eine Stunde lang begeistert, als ich versuchte, die Listeneinschlussnotation zu verwenden
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Als ich in IPython versuchte, den Wert zu sehen, war es ein Generator, also kam ich auf ihn, als ich frustriert war.
Ich dachte, es wäre langsam, die for-Anweisung in NumPy zu verwenden, aber das war nicht der Fall.
Beachten Sie, dass ich süchtig danach war, TensowFlow einzurichten
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
Der Cloud Shell Editor von GCP war mit der Python-Entwicklungsumgebung verstopft, sodass ich es geschafft habe, ihn auf einem freien Grundstück neu zu erstellen.
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
Verwenden Sie Python aus Java mit Jython. Ich war auch süchtig danach.
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Hinweise Ich habe nachgeschlagen, um Befehlszeilentools in Python zu erstellen
Ich war süchtig danach, Cython mit PyCharm auszuprobieren, also machen Sie sich eine Notiz
Ich habe keine Angst, eine Programmierumgebung aufzubauen.
[Python & SQLite] Ich habe den erwarteten Wert eines Rennens mit Pferden im 1x-Gewinnbereich ① analysiert
Als ich eine Baumkarte (Flächendiagramm) mit Python erstellt habe, war sie subtil. Wenn ich also Schnörkel verwendete, fühlte es sich ziemlich gut an.
Einführung in die KI-Erstellung mit Python! Teil 2 Ich habe versucht, den Hauspreis in Boston mit einem neuronalen Netz vorherzusagen
Ich möchte eine Python-Umgebung erstellen
Die mit vim bearbeitete Datei war schreibgeschützt, aber ich möchte sie speichern
Auch wenn die Entwicklungssprache in Cloud9 in Python3 geändert wird, wird Version 2 in Python - Version angezeigt