[PYTHON] Je veux faire pyenv + pipenv même sous Windows

Résumé

Bonjour, je suis M1 qui s'est vu confier un certain cours pour les étudiants B1 et B2. Le contenu est de vous apprendre à utiliser Tensorflow ** 1.12 **, ce qui signifie examiner ** l'Enfer de l'environnement ** et ** l'Enfer de la compatibilité **.

Le but de cet article est de créer un état dans lequel les ** utilisateurs Windows ** peuvent développer, afin de créer un environnement dans lequel ils peuvent démarrer le développement pour le moment.

Pour commencer par la conclusion, j'ai écrit un script powershell comme celui-ci. Vous pouvez obtenir un environnement agréable en exécutant ce type.

Préface: environnement de développement infini

L'environnement de développement est différent pour chaque personne, et j'utilise Manjaro Linux x Docker x Emacs x LSP, qui est un environnement assez rigide, mais ce n'est pas le seul qui soit anormal.

En tant que classe universitaire, j'enseigne souvent Emacs (~~ pour augmenter mon aversion pour Emacs ~~), mais peut-être à cause de cela, la situation actuelle est que les éditeurs tels que vim, neovim, gvim ou VSCode sont toutes des variétés. Cela existe comme un problème.

De plus, lorsque macOS, célèbre pour ses paillettes, Ubuntu, qui ressemble à un fou, et Windows 8 (/ 10), que je ne sais pas mais que je vend là-bas, entrent en tant qu'options de système d'exploitation, l'explosion de la combinaison est dangereuse.

Organiser les exigences

Commencez par organiser les conditions requises pour créer un script.

  1. Être un utilisateur de Windows 10

Nous allons créer un didacticiel distinct pour Mac et Linux, et mettre à jour à 10 pour Windows. Heureusement, l'université à laquelle j'appartiens distribue Windows 10, donc Windows 8 / 8.1 aura une politique de mise à jour.

  1. Powershell peut être utilisé

WSL, Bash sur Ubuntu et Hyper-V ne peuvent pas être utilisés car il y a de fortes chances qu'ils soient désactivés en raison des performances ou de l'engagement logiciel. Avec Powershell ... Je suis sûr que ça va.

  1. Vous utilisez un éditeur ** décent **

Récemment, LSP (language-server-protocol) est devenu un outil de complément / vérification populaire. Par exemple, les éditeurs populaires tels que VSCode, Vim et Emacs prennent en charge LSP. Je suis sûr que vous utilisez un éditeur qui peut l'utiliser. ~~ Je ne connais pas les blocs-notes ~~

Avec cette exigence, nous écrirons un script.

Script créé et comment l'utiliser

python_install_on_windows.ps1


# installation scoop
try {
 scoop --version
} finally {
  Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
  Set-ExecutionPolicy RemoteSigned -scope CurrentUser
}

# install some utility applications
scoop install python wget curl git
python --version
pip install pipenv

# install pyenv environment
if (!(get-command pyenv -errorAction SilentlyContinue)) {
  pip install pyenv-win --target $env:USERPROFILE\.pyenv
  [Environment]::SetEnvironmentVariable("PATH", "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims", "User")
  $env:PATH = "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims"
}

pyenv install 3.6.8-amd64

# create temporary file
if (!(Test-Path $env:USERPROFILE\.cache)) {
  New-Item $env:USERPROFILE\.cache -ItemType Directory
}
if (!(Test-Path $env:USERPROFILE\.cache\tmp)) {
  New-Item $env:USERPROFILE\.cache\tmp -ItemType Directory
}

# create project file
if (!(Test-Path $env:USERPROFILE\tensorflow_tutorial)) {
  New-Item $env:USERPROFILE\tensorflow_tutorial -ItemType Directory
}

# setup python environment
Set-Location $env:USERPROFILE\tensorflow_tutorial
pipenv install --python 3.6.8-amd64
pipenv install tensorflow==1.12.0 python-language-server[all] ipython

Enregistrez-le dans un emplacement approprié et rendez les propriétés du fichier exécutables comme suit.

Ensuite, placez ce fichier sur Powershell

./python_install_on_windows.ps1

Si vous exécutez, il sera installé sans autorisation et C: \ Users \ <USername> \ tensorflow_tutorial sera créé comme exemple de projet.

Qu'est-ce que tu fais

Après cela, ce sera une explication de ce que vous faites.

Que fait ce script

--Installation du système de gestion de paquets Windows Scoop --Installez Python --Installation de Pyenv --Créez un dossier temporaire pour LSP --Création d'un exemple de projet

Il est devenu.

Installation de la pelle

Scoop est un outil pour l'installation spécifique à l'utilisateur de paquets à la manière Unix. Les avantages de cet outil sont ** aucune autorisation requise **, ** facile à installer **, ** des commandes similaires à Linux et macOS **.

# installation scoop
try {
 scoop --version
} finally {
  Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
  Set-ExecutionPolicy RemoteSigned -scope CurrentUser
}

Installation de Python

Maintenant que Scoop est installé, vous pouvez installer des logiciels / applications ** généraux ** comme Python.

git, curl, wget sont des commandes que vous voulez connaître à propos de B3, B4 ou version ultérieure, et git est parfois interrogé sur la recherche d'emploi, alors profitons de cette occasion pour apprendre.

# install some utility applications
scoop install python wget curl git
python --version

Installez Pyenv

Pyenv est introduit pour les outils de gestion de version Python. Il existe différentes versions de Python telles que 3.5 et 3.6, et cette version est limitée à Gorigori pour ~~ shit ~~ Tensorflow.

Il existe également un moyen d'installer tous les binaires individuellement et de les passer par le chemin, mais cette fois, j'utiliserai un outil appelé Pyenv pour réduire les opérations d'écran gênantes.

# install pyenv environment
if (!(get-command pyenv -errorAction SilentlyContinue)) {
  pip install pyenv-win --target $env:USERPROFILE\.pyenv
  [Environment]::SetEnvironmentVariable("PATH", "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims", "User")
  $env:PATH = "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims"
}

Création d'un dossier temporaire pour LSP

Le protocole Language Server est simplement la complétion de code, définissant un format pour faire quelque chose comme un message d'erreur et, dans de rares cas, son implémentation. Dans LSP, un système appelé serveur qui analyse le code apparaîtra en plus de l'éditeur. Vous trouverez ci-dessous une citation de Documentation VSCode.

image.png

L'une des motivations est: "Envoyons et recevons du code, des messages d'erreur et des documents de code comme celui-ci quelle que soit la langue, et il sera plus facile d'implémenter la complétion dans chaque éditeur."

En introduisant cela, il est possible de standardiser dans une certaine mesure les paramètres de finalisation pour les éditeurs avec autant d'étoiles.

# create temporary file
if (!(Test-Path $env:USERPROFILE\.cache)) {
  New-Item $env:USERPROFILE\.cache -ItemType Directory
}
if (!(Test-Path $env:USERPROFILE\.cache\tmp)) {
  New-Item $env:USERPROFILE\.cache\tmp -ItemType Directory
}

Créer un exemple de projet

Comme exemple de projet, créez un environnement de ** tensorflow 1.12 **.

tensorflow 1.12 ne prend en charge que l'environnement ** <= python3.6 **, donc installez ** 3.6.8 **.

Ensuite, créez un dossier de projet, puis utilisez pipenv, un ** outil de gestion de package ** (pas une version) pour installer tensorflow, python-language-sever et ipython sous python 3.6.8. Je vais.

pip install pipenv
pyenv install 3.6.8-amd64

# create project file
if (!(Test-Path $env:USERPROFILE\tensorflow_tutorial)) {
  New-Item $env:USERPROFILE\tensorflow_tutorial -ItemType Directory
}

# setup python environment
Set-Location $env:USERPROFILE\tensorflow_tutorial
pipenv install --python 3.6.8-amd64
pipenv install tensorflow==1.12.0 python-language-server[all] ipython

Méthode d'exécution

Pour exécuter l'exemple de projet, par exemple pour vim

pipenv run vim

Réveillez-vous sous la forme de. Pour VSCode, ouvrez simplement le dossier tensorflow_tutorial et vous êtes prêt à partir.

Addendum: exemple de fichier de configuration vim

Un exemple de fichier de configuration vim est ici, mais je n'ai pas une longue histoire de vim, il est donc probablement préférable d'écouter avec un hashtag sur Twitter.

Pour activer ce fichier de configuration, procédez comme suit:

  1. Installez vundle

    mkdir ~/.vim
    mkdir ~/.vim/bundle
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    
  2. :PluginInstall : PlugInstall sur vim.

Recommended Posts

Je veux faire pyenv + pipenv même sous Windows
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je veux faire Wake On LAN de manière entièrement automatique
Je veux faire ○○ avec les Pandas
Je veux utiliser Linux sur mac
Je souhaite développer des applications Android sur Android
Je veux faire le test de Dunnett en Python
Je veux enregistrer les entrées / sorties de fichiers sous Linux
Une bibliothèque pour la science des données "Je veux faire ça" sur le bloc-notes Jupyter
Je souhaite développer des applications Android sur Android (débogage)
Je veux trouver un package populaire sur PyPi
Je veux AWS Lambda avec Python sur Mac!
[TensorFlow] Je souhaite traiter des fenêtres avec Ragged Tensor
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je veux faire quelque chose avec Python à la fin
Je veux résoudre SUDOKU
J'ai exécuté python sur Windows
Je veux faire quelque chose comme sort uniq en Python
Je souhaite annoncer ma thèse de fin d'études sur IPython Notebook
[AWS EC2] Paramètres que vous souhaitez effectuer sur Amazon Linux 2
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Comment utiliser Dataiku sous Windows
Comment installer pycrypto sur Windows
Je veux gratter des images et les former
Je veux copier l'annotation de yolo
Je veux déboguer avec Python
Comment installer Music 21 sur Windows
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
Je souhaite utiliser la traduction de raccourcis comme l'application DeepL même sous Linux
Que faire si Python ne fonctionne pas sur Git pour Windows
Configuration MacBookPro Après tout, je veux faire une installation propre
Je souhaite rechercher le texte intégral avec elasticsearch + python
Que faire si PyAudio ne peut pas être installé sur Python 3.7, 3.8, 3.9 sous Windows
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
Je veux le faire avec Python lambda Django, mais je vais m'arrêter
Je veux tweeter Twitter avec Python, mais j'y suis accro
Je veux imprimer dans la notation d'inclusion
Je veux les gratter tous ensemble.
Je veux gérer la rime part1
[Kivy] Comment installer Kivy sur Windows [Python]
Je veux savoir comment fonctionne LINUX!
Je veux écrire un blog avec Jupyter Notebook
Catalina: Pyenv bloqué lors de la migration vers zsh
Si vous souhaitez utiliser NumPy, Pandas, Matplotlib, IPython, SciPy sous Windows
Je veux gérer la rime part3
Remarque: je souhaite faire de la domotique avec Home Assistant + Raspberry Pi + capteur # 1
Je veux utiliser jar de python
Je souhaite afficher une image sur Jupyter Notebook à l'aide d'OpenCV (mac)
Je veux créer un environnement Python
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
J'étais accro à Flask sur dotCloud
Je veux jouer avec aws avec python
Je souhaite utiliser la console IPython Qt