Note de travail pour migrer et mettre à jour les scripts de la série Python 2 sur le cloud vers la série 3

image.png

Qu'est-ce que c'est

supposition

--Utilisation de pyenv pour le contrôle de version Python --Docker, virtualenv, Pipenv ne sont pas utilisés

Aperçu

  1. Décidez quel Python migrer
  2. Vérifiez localement
  3. Élever la version en production (stg)

procédure

enquête préliminaire

Vérifiez l'environnement d'exploitation actuel

[ec2-user@app]$ pyenv install --list
Available versions:
#Omission
  3.6.0
  3.6-dev
  3.6.1
  3.6.2
  3.6.3
  3.6.4
  3.7.0b2
  3.7-dev
  3.8-dev
#Omission

Décidez de la version Python vers laquelle migrer

image.png

Vérification du fonctionnement local

Identifier la logique qui ne peut pas être utilisée dans la série Python 3

-Essayez de mettre à jour le code Python avec futurize

image.png

--Portage de Python 2 vers Python 3: https://docs.python.org/ja/3/howto/pyporting.html#porting-python-2-code-to-python-3

Essayez la conversion automatique en notation Python3

image.png

Changement de version Python et exécution de script

Notez la méthode de sauvegarde en cas de mousse

Mise en œuvre de la transition

Après cela, nous allons enfin changer la version Python du script de production.

Changer de version de Python

--Changez la version Python avec pyenv

# 3.6.Installer 4
$ pyenv install 3.6.4
$ pyenv versions  
  system  
* 2.7 (set by /home/ec2-user/.pyenv/version)
  3.6.4 #Aurait dû être ajouté
$ pyenv local 3.6.4
$ pyenv rehash
$ pyenv versions  
  system  
  2.7 (set by /home/ec2-user/.pyenv/version)
* 3.6.4 #Aurait dû changer
$ python --version
Python 3.6.4 #Aurait dû changer

Réinstaller la bibliothèque

--Installez la bibliothèque dans l'environnement Python3 --Ce qui suit est un exemple d'installation à l'aide de requirements.txt

$ pip install -r requirements.txt
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests->-r requirements.txt (line 5))
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
    100% |████████████████████████████████| 133kB 9.1MB/s
Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 5))
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2020.4.5.1-py2.py3-none-any.whl (157kB)
    100% |████████████████████████████████| 163kB 7.3MB/s
#Ce qui suit est omis

Vérifier le fonctionnement du script


[ec2-user@app]$ python main.py

Document de référence

image.png image.png

Recommended Posts

Note de travail pour migrer et mettre à jour les scripts de la série Python 2 sur le cloud vers la série 3
Comment mettre à jour la version Python de Cloud Shell dans GCP
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Mettre à jour Mac Python de 2 à 3
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
La route pour installer Python et Flask sur un PC hors ligne
Migrer les applications Django exécutées sur Python 2.7 vers Python 3.5
Comment empaqueter et distribuer des scripts Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Comment écrire le bon shebang dans les scripts Perl, Python et Ruby
J'ai réussi à résoudre la situation où Python ne fonctionne pas sur Mac
La clé du déploiement d'applications Flask à l'aide de Python Buildpack sur Cloud Foundry (Diego)
Excel X Python La technique de travail la plus rapide
[IBM Cloud] J'ai essayé d'accéder à la table Db2 on Cloud à partir de Cloud Funtions (python)
Jinja2 2.9.6 ne fonctionne pas sur la série Lambda Python 3
Introduction à Python avec Atom (en route)
GAE --Avec Python, faites pivoter l'image en fonction des informations de rotation d'EXIF et importez-la dans Cloud Storage.
Au moment de la mise à jour de python avec ubuntu
Obtenez la date de mise à jour du fichier de mémorandum Python.
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
Exécutez l'application flask sur Cloud 9 et Apache Httpd
Réfléchissez à la programmation de Python sur votre iPad
Le mémo Python le plus simple au Japon (classes et objets)
Étapes pour installer le dernier Python sur votre Mac
Comment profiter de Python sur Android !! Programmation en déplacement !!
Installez django sur python + anaconda et démarrez le serveur
La première intelligence artificielle. Tensorflow sur CentOS7.0. Construit séparément pour les séries python3.5 et python2.7 avec virtualenv.
Le mémo le plus court pour créer un environnement python qui prend moins de 5 minutes pour fonctionner.
Je veux absorber la différence entre l'instruction for sur la matrice Python + numpy et l'instruction Julia for
Oh! python -m SimpleHTTPServer ne fonctionne pas avec Safari et FireFox! ??
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
API Nifty Cloud facile à utiliser avec botocore et python
Mémo pour obtenir la valeur côté html-javascript avec jupyter
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
Lancez l'émulateur Cloud Datastore avec docker-compose et travaillez avec l'application Python
Comment déployer Pybot, le manuel Python le plus simple, sur Heroku
Installez pyenv sur MacBookAir et basculez Python à utiliser
Créer un environnement Python et transférer des données vers le serveur
Travaille automatiquement sur le projet python spécifié lors de la connexion à zsh
Autoriser l'exécution rapide des scripts Python dans Cloud Run à l'aide du répondeur
Au point où le céleri de Python et RabbitMQ (Docker) fonctionnent
Je veux connaître la nature de Python et pip
J'ai essayé d'énumérer les différences entre java et python
Enregistrer des images sur le Web sur un lecteur avec Python (Colab)
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Comment exécuter des commandes et des scripts shell externes en python
Un mémo pour basculer entre la série python2 et la série 3 dans l'environnement anaconda de mac (win est également ajouté)
Série Python 2 et série 3 (édition Anaconda)
Mémo tranche python et rubis
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Répétez avec While. Script pour tweeter ou rechercher depuis le terminal
Comment réussir et étudier l'examen de base de la certification d'ingénieur Python 3
Python: Mettez à jour pyenv sans réfléchir et résolvez le phénomène "Où est Python?"
Que faire si Python ne fonctionne pas sur Git pour Windows
Créez un classement de jeu sur le cloud Alibaba en utilisant Python et Redis
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
[Python] Comment obtenir le premier et le dernier jour du mois