Comment démarrer le projet Python en 2020 (Windows WSL et Mac commun)

Introduisez un environnement python Linux moderne dans Windows 10 en utilisant la même procédure que Mac.

Il y a deux ans, faisant référence à un bon article pour Mac «Comment démarrer avec le projet Python en 2018», WSL (Windows Subsystem for) sur Windows 10 Préparation d'un environnement python Linux moderne (à l'époque) sous Linux) (Article: Préparer un environnement Python moderne en appuyant sur une commande d'environ 10 lignes ). J'utilise toujours l'environnement après l'avoir mis à jour à ce moment-là, mais depuis que j'utilise Mac pour les affaires scala / java, j'ai décidé de l'adopter pour créer un environnement python plus compatible avec la méthode Mac. .. En conclusion, je pensais que cette approche était définitivement possible compte tenu de la maintenabilité. C'est une approche polyvalente quelle que soit la langue, donc même les débutants qui doivent utiliser à la fois python et javascript dans un proche avenir devraient relever le défi même lorsqu'ils en ont le temps.

Politique de cette année

--Introduire un homebrew en utilisant la version WSL ubuntu --Introduisez anyenv de homebrew. --Mettez pyenv de anyenv et changez la gestion des packages de pipenv à poetry

Il faut beaucoup de travail pour utiliser anyenv, mais je voulais gérer la version de nodejs etc. de la même manière, alors je l'ai contesté. Il semble y avoir asdf comme option pour construire un environnement plus diversifié, mais je me demande si cela sera adopté environ deux ans après son déclin.

(Bonus) Au fait, rendez l'environnement vscode commun à win / mac.

Personnellement, le grand changement par rapport à il y a deux ans est que le ratio d'utilisation de vscode a augmenté. ... Avant cela, j'utilisais sublimetext car je devais gérer des milliards de lignes de fichiers texte. De nos jours, vscode convient à la fois aux éditeurs Mac et Windows. J'ai donc écrit l'article suivant. Si vous êtes vscode + python, veuillez également regarder ici. Réalisez facilement un environnement proche de Mac avec Windows 10 (wsl + vscode + homebrew)

Procédure avec la version WSL ubuntu

Il n'y a que quelques lignes de différences de commande entre Mac et Windows wsl (ubuntu). Récemment, la machine window10 de mon PC personnel ne fonctionne pas bien et je suis sur le point de mourir, alors quand j'ai réglé mon PC personnel sur Mac uniquement, j'ai pensé écrire la différence sur Mac.

① Introduction de l'homebrew

Homebrew peut être facilement installé dans la version WSL d'ubuntu. Ci-dessous, la procédure d'installation d'ubuntu dans l'état initial

.sh


sudo apt update
sudo apt upgrade
sudo apt install linuxbrew-wrapper build-essential
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> ~/.bashrc
source ~/.bashrc

② Présentez anyenv

À partir de maintenant, la procédure est presque la même que pour Mac. Je vous remercie. Incluez les plugins de commodité anyenv et anyenv. Certains plugins ne sont pas nécessaires pour pyenv, mais soyez prêt pour les jours où vous utilisez d'autres langues.

brew install anyenv
anyenv init
echo 'eval "$(anyenv init -)"' >> ~/.bashrc
exec $SHELL -l
anyenv install --init
anyenv -v
mkdir -p $(anyenv root)/plugins
git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
anyenv update

③ Présentez pyenv / python / poésie

Il y a aussi quelques étapes spécifiques à ubuntu pour la version wsl ici. Cependant, je clique simplement sur la commande suivante. Si la version d'ubuntu change, la procédure peut changer. Dans ce cas, faisons de notre mieux par google avec l'un des mots-clés pyenv / ubuntu / poetry. Dans l'article il y a deux ans, la procédure a légèrement changé environ une fois tous les six mois et j'ai mis à jour l'article, donc je vais le vérifier à la même fréquence cette fois et mettre à jour cet article le cas échéant (j'ai l'impression de ne pas écrire beaucoup) ..

.sh


anyenv install pyenv
exec $SHELL -l
sudo apt-get install -y libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
pyenv install 3.8.2
pyenv global 3.8.2
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
source $HOME/.poetry/env

À la fin

Après l'installation

Ça devrait ressembler à ça.

userid@DESKTOP-YourID:~$ poetry
Poetry version 1.0.5

USAGE
  poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [<arg1>] ... [<argN>]

ARGUMENTS
  <command>              The command to execute
  <arg>                  The arguments of the command

GLOBAL OPTIONS
  -h (--help)            Display this help message
  -q (--quiet)           Do not output any message
  -v (--verbose)         Increase the verbosity of messages: "-v" for normal output, "-vv" for more verbose output and "-vvv" for debug
  -V (--version)         Display this application version
  --ansi                 Force ANSI output
  --no-ansi              Disable ANSI output
  -n (--no-interaction)  Do not ask any interactive question

AVAILABLE COMMANDS
  about                  Shows information about Poetry.
  add                    Adds a new dependency to pyproject.toml.
  build                  Builds a package, as a tarball and a wheel by default.
  cache                  Interact with Poetry's cache
  check                  Checks the validity of the pyproject.toml file.
  config                 Manages configuration settings.
  debug                  Debug various elements of Poetry.
  env                    Interact with Poetry's project environments.
  export                 Exports the lock file to alternative formats.
  help                   Display the manual of a command
  init                   Creates a basic pyproject.toml file in the current directory.
  install                Installs the project dependencies.
  lock                   Locks the project dependencies.
  new                    Creates a new Python project at <path>.
  publish                Publishes a package to a remote repository.
  remove                 Removes a package from the project dependencies.
  run                    Runs a command in the appropriate environment.
  search                 Searches for packages on remote repositories.
  self                   Interact with Poetry directly.
  shell                  Spawns a shell within the virtual environment.
  show                   Shows information about packages.
  update                 Update the dependencies as according to the pyproject.toml file.
  version                Shows the version of the project or bumps it when a valid bump rule is provided.

userid@DESKTOP-YourID:~$ python
Python 3.8.2 (default, Apr  4 2020, 23:48:47)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

J'ai mis nodejs en plus de python sur mon PC, mais c'est propre sur brew (hugo a été introduit séparément dans le but de créer un blog). Je pense que c'est un bon point de cette méthode.

$ brew list
anyenv  hugo  patchelf

Comment étudier la poésie de l'outil de gestion de colis

Le document officiel a été traduit en japonais (ci-dessous), il semble donc bon de commencer ici. https://cocoatomo.github.io/poetry-ja/basic-usage/

Utilisons winpython (la version portable est recommandée) selon le cas.

Il est important de gérer la version de pyhon et des packages par la procédure décrite ici, comme lors de l'utilisation de python dans le développement Web avec un délai de livraison serré, s'il y a même un package qui ne fonctionne pas. Pour les projets d'ingénieur de données / science des données, une connexion à une base de données plutôt désignée (souvent héritée) est requise. Lors de la connexion à une base de données plus ancienne, la version Linux du pilote peut ne pas être possible. Si pyenv est terminé sur wsl, la coexistence avec winpython ne pose bien entendu aucun problème. Utilisons winpython le cas échéant pour sécuriser l'option de connexion à la base de données via ODBC. Avec la version portable, il n'y a pas de souci que l'environnement se salisse, donc avec python seul, winpython, qui introduit également anaconda et pandas / numpy sans permission, peut être le plus puissant. Cependant, quand il s'agit de créer des liens avec d'autres outils via le shell, je veux toujours un pyenv wsl.

[Bonus] Il en va de même pour la gestion des versions de nodejs.

Si vous suivez cette procédure, vous pouvez facilement gérer la version de nodejs. Pour installer la dernière version de nodejs pour le moment, suivez les étapes ci-dessous.

anyenv install nodenv
exec $SHELL -l
touch $(nodenv root)/default-packages
nodenv install 13.2.0
nodenv global 13.12.0

Vous pouvez vérifier la version avec node -v.

Recommended Posts

Comment démarrer le projet Python en 2020 (Windows WSL et Mac commun)
Comment démarrer avec Python
Comment obtenir la différence de date et d'heure en secondes avec Python
Lien pour commencer avec python
Comment obtenir la version Python
Comment démarrer avec Scrapy
Comment démarrer avec Django
Connaissances minimales pour démarrer avec le module de journalisation Python
Comment entrer dans l'environnement de développement Python avec Vagrant
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Exécutez le programme sans créer d'environnement Python! !! (Comment démarrer avec Google Colaboratory)
Premiers pas avec le framework Python Django sur Mac OS X
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[Python] Comment obtenir le premier et le dernier jour du mois
Comment les débutants en Python commencent avec Progete
[Python Kivy] Comment obtenir le chemin du fichier par glisser-déposer
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Le moyen le plus simple de démarrer avec Django
Comment obtenir les fichiers dans le dossier [Python]
Zubu amateur veut démarrer Python
Pour ceux qui veulent apprendre Excel VBA et se lancer avec Python
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
[Introduction à Python] Comment itérer avec la fonction range?
J'ai essayé de démarrer avec le script python de blender_Part 01
[Python] Comment spécifier l'emplacement de téléchargement avec youtube-dl
Comment partager des dossiers avec Docker et Windows avec tensorflow
J'ai essayé de démarrer avec le script python de blender_Partie 02
Comment obtenir le verdict de la molette de la souris avec des malédictions Python
[Python] Comment réécrire le style de table avec python-pptx [python-pptx]
Comment installer Python [Windows]
Comment démarrer avec Visual Studio Online ~ La fin de l'ère de la construction d'environnement ~
Commencez avec Python! ~ ② Grammaire ~
Comment définir l'environnement de développement pour chaque projet avec VSCode + extension Python + Miniconda
J'ai essayé de simuler la propagation de l'infection avec Python
[Python] Comment jouer avec les variables de classe avec décorateur et métaclasse
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Récupérez la source de la page à charger indéfiniment avec python.
Utilisez Python pour surveiller Windows et Mac et collecter des informations sur les applications sur lesquelles vous travaillez
Comment gérer le phénomène que Python (notebook Jupyter) exécuté sur WSL devient abandonné
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
Python: comment utiliser async avec
Commencez avec Python! ~ ① Construction de l'environnement ~
Python 3.6 sous Windows ... et vers Xamarin.
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2