L'éditeur Cloud Shell de GCP était encombré par l'environnement de développement Python, j'ai donc réussi à le reconstruire comme un terrain vacant.

Aperçu

Depuis la fin de 2019 environ, je travaille sur le développement de Python sur Cloud Shell de GCP et sur son déploiement sur Cloud Function. Après avoir développé pendant un certain temps et l'avoir laissé pendant quelques mois, un nouveau projet de développement a récemment eu lieu, alors quand j'ai pensé à le déployer et à le tester, j'ai commencé à lancer diverses erreurs lors du déploiement. J'ai essayé de gérer cela en regardant l'erreur, mais cela n'a pas fonctionné, et quand j'ai finalement réinitialisé l'environnement, cela a fonctionné, donc je vais le résumer.

La mise à jour et le changement de versions de Python et de pip étaient la plus grande impasse.

procédure

  1. Faites une sauvegarde
  2. Suivez la procédure officielle pour réinitialiser l'environnement
  3. Mettez à jour Python avec pyenv
  4. Basculez pip vers pip3 et mettez à jour
  5. Suivez les instructions officielles pour mettre à jour gcloud
  6. Restaurer les fichiers de travail
  7. Mise à jour à partir de requirements.txt
  8. Après cela, déployez et écrasez le bogue comme il convient

1. Faites une sauvegarde

Après avoir exporté les packages installés avec pip freeze> requirements.txt, téléchargeons tous les fichiers sur Cloud Sell Editor. Le fichier sera déposé par tar. Il n'est pas nécessaire de le décompresser car il sera à nouveau généré en tant que tar plus tard.

2. Suivez la procédure officielle pour réinitialiser l'environnement

** Désactivez ou réinitialisez Cloud Shell ** https://cloud.google.com/shell/docs/resetting-cloud-shell?hl=ja

Selon sudo rm -rf $HOME Il semble que vous puissiez redémarrer Shell après la réinitialisation.

3. Mettez à jour Python avec pyenv

Ce Qiita a été utile, merci à la personne qui l'a écrit.

** Comment mettre à jour la version python de Cloud Shell pour GCP ** https://qiita.com/greenteabiscuit/items/cbecdf4f84f0b73ff96e

Je cours sur python 3.7.9.

4. Basculez pip vers pip3 et mettez à jour

Si vous pipez tel quel, il sera affiché comme python v2, alors soyez prudent. Si rien n'est fait, une erreur a été générée lors du déploiement de Cloud Function, il semble donc préférable d'utiliser pip3 ici également. Basculer vers la référence de commande sur le site suivant 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 Je peux y aller.

Ensuite, utilisez pip install -U pip pour mettre à jour vers la dernière version.

5. Suivez les instructions officielles pour mettre à jour gcloud

J'ai également dû mettre à jour gcloud. Officiellement, voici la procédure:

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

gcloud components update Est la commande. Cependant, sur Shell, il ne peut pas être mis à jour avec ceci,

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

Il vous sera demandé d'exécuter une très longue commande. Quand je l'ai exécuté, il a été mis à jour correctement.

6. Restaurer les fichiers de travail

Téléchargeons le tar qui a été téléchargé en 1. Vous pouvez faire D & D ou cliquer avec le bouton droit n'importe où dans la liste des fichiers → Télécharger des fichiers. Après le téléchargement, décompressez avec la commande tar. Je me suis référé à ce Qiita pour savoir comment le faire:

** Comment compresser et décompresser les fichiers [Linux] ** https://qiita.com/supersaiakujin/items/c6b54e9add21d375161f

tar -xvf xxxx.tar Commande ci-dessus

7. Mise à jour à partir de requirements.txt

Réinstallons maintenant le package pip. Je me suis référé au site suivant.

** Installation de package en masse à l'aide de requirements.txt avec Python, pip ** https://note.nkmk.me/python-pip-install-requirements/

pip install -r requirements.txt

Parfois, j'obtiens une erreur comme "Ce paquet ne peut pas être installé sans un autre paquet", mais dans ce cas, si vous spécifiez le nom du paquet et l'installez, ce sera tout à fait bon. J'utilise juste l'api bigquery, mais j'ai dû installer les packages associés ci-dessous:

pip install google-cloud-bigquery

8. Après cela, déployez et écrasez le bogue comme il convient

Après cela, écrasons les bogues ~~ indéfiniment en faisant gcloud functions deploy ~~.

Postscript

Peut-être n'avez-vous pas à vous soucier de changer la version avec la barre bleue en bas de l'écran de l'éditeur.

Recommended Posts

L'éditeur Cloud Shell de GCP était encombré par l'environnement de développement Python, j'ai donc réussi à le reconstruire comme un terrain vacant.
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Je souhaite configurer un environnement de développement GUI avec Python ou Golang sur Mac
J'étais accro à la création d'un environnement Python venv avec VS Code
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Notez que j'étais accro à la configuration de TensowFlow
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Lorsqu'il est difficile de configurer un serveur SMTP localement lors de l'envoi de courrier avec Python.
L'éditeur Cloud Shell de GCP était encombré par l'environnement de développement Python, j'ai donc réussi à le reconstruire comme un terrain vacant.
J'ai réussi à le faire parce que la coutume de joindre un zip avec un mot de passe à un e-mail et de dire «Je vous enverrai le mot de passe séparément» est gênante.
Lorsque j'ai essayé de changer le mot de passe root avec ansible, je ne pouvais pas y accéder.
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
J'ai pu me moquer d'AWS-Batch avec python, moto, donc je vais le laisser
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
Notez que j'étais accro à la configuration de TensowFlow
Ce que j'ai fait quand j'étais en colère de le mettre avec l'option enable-shared
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je veux travailler avec un robot en python.
Python: peut être répété en lambda
Configurer un environnement de développement Python avec Sublime Text 2
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Depuis qu'il y avait Doppelgenger, j'ai essayé de le distinguer avec l'intelligence artificielle (rires) (Partie 1)
J'ai écrit un script pour créer rapidement un environnement de développement pour Twitter Bot avec AWS Lambda + Python 2.7
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Comment entrer dans l'environnement de développement Python avec Vagrant
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
[Vous devez le savoir! ] J'ai essayé de mettre en place un environnement Python de manière rentable en utilisant pleinement les privilèges des étudiants universitaires.
Développement LINEbot, je souhaite vérifier le fonctionnement dans l'environnement local
Je voulais résoudre le problème ABC164 A ~ D avec Python
J'avais du mal à faire mes devoirs, j'ai donc utilisé Python pour la comptabilité de gestion.
J'ai réussi à convertir jpg en png car la transparence n'a pas été altérée
J'ai exécuté GhostScript avec python, divisé le PDF en pages et l'ai converti en image JPEG.
Une histoire à laquelle j'étais accro en spécifiant nil comme argument de fonction dans Go
[Python] J'ai été accro pendant une heure à essayer d'utiliser la notation d'inclusion de liste
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Je pensais qu'il serait lent d'utiliser l'instruction for dans NumPy, mais ce n'était pas le cas.
Notez que j'étais accro à la configuration de TensowFlow
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
L'éditeur Cloud Shell de GCP était encombré par l'environnement de développement Python, j'ai donc réussi à le reconstruire comme un terrain vacant.
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
Utilisez Python de Java avec Jython. J'étais aussi accro.
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Notes J'ai recherché la création d'outils de ligne de commande en Python
J'étais accro à essayer Cython avec PyCharm, alors prenez note
[Mots qui m'ont été épelés quand j'étais en première année ①] Je n'ai pas peur de créer un environnement de programmation.
[Python & SQLite] J'ai analysé la valeur attendue d'une course avec des chevaux dans la fourchette 1x win ①
Quand j'ai fait un treemap (graphique de zone) avec python, c'était subtil, donc quand j'ai utilisé fleurir, c'était plutôt bien.
Introduction à la création d'IA avec Python! Partie 2 J'ai essayé de prédire le prix de l'immobilier dans la ville de Boston avec un réseau neuronal
Je veux créer un environnement Python
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
Même si le langage de développement est changé en python3 dans Cloud9, la version 2 est affichée en python --version