[PYTHON] Ich möchte pyenv + pipenv auch unter Windows machen

Zusammenfassung

Hallo, ich bin M1 und wurde mit einem bestimmten Kurs für B1- und B2-Studenten betraut. Der Inhalt soll Ihnen zeigen, wie Sie Tensorflow ** 1.12 ** verwenden, was bedeutet, dass Sie sich ** Environmental Hell ** und ** Compatibility Hell ** ansehen.

Der Zweck dieses Artikels besteht darin, einen Status zu erstellen, in dem sich ** Windows-Benutzer ** entwickeln können, um eine Umgebung zu erstellen, in der sie vorerst mit der Entwicklung beginnen können.

Zu Beginn habe ich ein [Powershell-Skript wie dieses] geschrieben (https://gist.github.com/MokkeMeguru/f39e4e4f5cf1dd40b71f97c28b359214). Sie können eine schöne Umgebung bekommen, indem Sie diesen Kerl laufen lassen.

Vorwort: Unendliche Entwicklungsumgebung

Die Entwicklungsumgebung ist für jede Person unterschiedlich, und ich verwende Manjaro Linux x Docker x Emacs x LSP, eine ziemlich starre Umgebung, aber dies ist nicht die einzige, die abnormal ist.

Als Universitätsklasse (~~ um die Abneigung gegen Emacs zu erhöhen ~~) unterrichte ich oft Emacs, aber vielleicht ist die aktuelle Situation deshalb so, dass Redakteure wie vim, neovim, gvim oder VSCode allein eine Vielzahl von Dingen sind. Es existiert als Problem.

Wenn außerdem MacOS, das für seinen Glanz bekannt ist, Ubuntu, das wie eine verrückte Person aussieht, und Windows 8 (/ 10), das ich nicht kenne, aber dort verkaufe, als Betriebssystemoptionen angeboten werden, ist die Kombinationsexplosion gefährlich.

Anforderungen organisieren

Organisieren Sie zunächst die Anforderungen zum Erstellen eines Skripts.

  1. Windows 10-Benutzer sein

Wir werden ein separates Tutorial für Mac und Linux erstellen und für Windows auf 10 aktualisieren. Glücklicherweise vertreibt die Universität, der ich angehöre, Windows 10, sodass Windows 8 / 8.1 eine Richtlinie zur Aktualisierung hat.

  1. Powershell kann verwendet werden

WSL, Bash unter Ubuntu und Hyper-V können nicht verwendet werden, da die Wahrscheinlichkeit groß ist, dass sie aufgrund von Leistung oder Software-Engagement deaktiviert werden. Mit Powershell ... Ich bin sicher, es ist okay.

  1. Sie verwenden einen ** anständigen ** Editor

In letzter Zeit hat sich LSP (Language-Server-Protocol) als beliebtes Komplement- / Check-Tool entwickelt. Beispielsweise unterstützen beliebte Editoren wie VSCode, Vim und Emacs LSP. Ich bin sicher, Sie verwenden einen Editor, der dies verwenden kann. ~~ Ich weiß nichts über Notizblöcke ~~

Mit dieser Anforderung schreiben wir ein Skript.

Erstelltes Skript und Verwendung

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

Speichern Sie es an einem geeigneten Ort und machen Sie die Dateieigenschaften wie folgt ausführbar:

Dann legen Sie diese Datei auf Powershell

./python_install_on_windows.ps1

Wenn Sie es ausführen, wird es ohne Erlaubnis installiert und C: \ Users \ <Benutzername> \ tensorflow_tutorial wird als Beispielprojekt erstellt.

Was machst du

Danach wird erklärt, was Sie tun.

Was macht dieses Skript?

--Installation des Windows-Paketverwaltungssystems Scoop

Es ist geworden.

Scoop Installation

Scoop ist ein Tool zum Installieren von Paketen auf Unix-ähnlicher Basis für jeden Benutzer. Die Vorteile dieses Tools sind ** keine Berechtigungen erforderlich **, ** einfach zu installieren **, ** Befehle ähnlich wie Linux und MacOS **.

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

Python-Installation

Nachdem Sie Scoop installiert haben, können Sie ** allgemeine ** Software / Anwendungen wie Python installieren.

git, curl, wget sind Befehle, die Sie über B3, B4 oder höher wissen möchten, und git wird manchmal nach der Jobsuche gefragt. Lassen Sie uns diese Gelegenheit nutzen, um etwas zu lernen.

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

Installieren Sie Pyenv

Pyenv wird für Python-Versionsverwaltungstools eingeführt. Es gibt verschiedene Versionen von Python wie 3.5 und 3.6, und diese Version ist für ~~ shit ~~ Tensorflow auf Gorigori beschränkt.

Es gibt auch eine Möglichkeit, alle Binärdateien einzeln zu installieren und über den Pfad zu führen. Dieses Mal werde ich jedoch ein Tool namens Pyenv verwenden, um die lästigen Bildschirmoperationen zu reduzieren.

# 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"
}

Erstellen eines temporären Ordners für LSP

Das Language Server-Protokoll ist einfach die Code-Vervollständigung, die Definition eines Formats für die Ausführung einer Fehlermeldung und in seltenen Fällen die Implementierung. In LSP wird zusätzlich zum Editor ein System namens Server angezeigt, das Code analysiert. Unten finden Sie ein Zitat aus VSCode-Dokumentation.

image.png

Eine der Motivationen lautet: "Senden und empfangen wir Code, Fehlermeldungen und Codedokumente wie dieses, unabhängig von der Sprache, und es wird einfacher sein, die Vervollständigung in jedem Editor zu implementieren."

Durch die Einführung ist es möglich, die Einstellungen für Redakteure mit ebenso vielen Sternen bis zu einem gewissen Grad zu standardisieren.

# 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
}

Beispielprojekt erstellen

Erstellen Sie als Beispielprojekt eine Umgebung mit ** Tensorflow 1.12 **.

Tensorflow 1.12 unterstützt nur die Umgebung ** <= python3.6 **. Installieren Sie daher ** 3.6.8 **.

Erstellen Sie dann einen Projektordner und installieren Sie mit pipenv, einem ** Paketverwaltungstool ** (keine Version), Tensorflow, Python-Language-Server und Ipython unter Python 3.6.8. Ich werde.

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

Ausführungsmethode

So führen Sie das Beispielprojekt aus, z. B. für vim

pipenv run vim

Wachen Sie in Form von auf. Öffnen Sie für VSCode einfach den Ordner "tensorflow_tutorial" und los geht's.

Postscript: Beispiel einer vim-Einstellungsdatei

Ein Beispiel für eine vim-Konfigurationsdatei ist hier, aber ich habe keine lange Geschichte von vim, daher ist es wahrscheinlich besser, mit einem Hashtag auf Twitter zu hören.

Gehen Sie wie folgt vor, um diese Konfigurationsdatei zu aktivieren:

  1. Installieren Sie vundle

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

Recommended Posts

Ich möchte pyenv + pipenv auch unter Windows machen
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich möchte Wake On LAN vollautomatisch ausführen
Ich möchte ○○ mit Pandas machen
Ich möchte Linux auf dem Mac verwenden
Ich möchte Android-Apps auf Android entwickeln
Ich möchte Dunnetts Test in Python machen
Ich möchte die Eingabe / Ausgabe von Dateien unter Linux protokollieren
Eine Bibliothek für Datenwissenschaft "Ich möchte das tun" auf dem Jupyter Notebook
Ich möchte Android-Apps auf Android entwickeln (Debug)
Ich möchte ein beliebtes Paket auf PyPi finden
Ich möchte Lambda mit Python auf Mac AWS!
[TensorFlow] Ich möchte Fenster mit Ragged Tensor verarbeiten
Ich möchte OpenJDK 11 mit Ubuntu Linux 18.04 LTS / 18.10 verwenden
Ich möchte am Ende etwas mit Python machen
Ich möchte SUDOKU lösen
Ich habe Python unter Windows ausgeführt
Ich möchte so etwas wie Uniq in Python sortieren
Ich möchte meine Abschlussarbeit über IPython Notebook ankündigen
[AWS EC2] Einstellungen, die Sie unter Amazon Linux 2 vornehmen möchten
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Verwendung von Dataiku unter Windows
Ich möchte Bilder kratzen und trainieren
Ich möchte Yolos Anmerkung kopieren
Ich möchte mit Python debuggen
So installieren Sie Musik 21 unter Windows
Ich habe versucht, eine Serverumgebung zu erstellen, die unter Windows 10 ausgeführt wird
Ich möchte Shortcut-Übersetzungen wie die DeepL-App auch unter Linux verwenden
Was tun, wenn Python unter Git für Windows nicht funktioniert?
MacBookPro-Setup Schließlich möchte ich eine Neuinstallation durchführen
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Ich möchte Spyder an die Taskleiste anheften
Ich möchte Objekte mit OpenCV erkennen
Ich möchte kühl auf die Konsole ausgeben
Zwei Dinge, die ich süchtig danach war, Django + Apache + Nginx unter Windows zu erstellen
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Ich möchte in der Einschlussnotation drucken
Ich möchte sie alle zusammen kratzen.
Ich möchte mit dem Reim Teil1 umgehen
[Kivy] So installieren Sie Kivy unter Windows [Python]
Ich möchte wissen, wie LINUX funktioniert!
Ich möchte einen Blog mit Jupyter Notebook schreiben
Catalina: Pyenv blieb bei der Migration nach zsh
Wenn Sie NumPy, Pandas, Matplotlib, IPython, SciPy unter Windows verwenden möchten
Ich möchte mit dem Reim part3 umgehen
Hinweis: Ich möchte die Heimautomation mit Home Assistant + Raspberry Pi + Sensor Nr. 1 durchführen
Ich möchte ein Glas aus Python verwenden
Ich möchte ein Bild auf Jupyter Notebook mit OpenCV (Mac) anzeigen.
Ich möchte eine Python-Umgebung erstellen
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte Protokolle mit Python analysieren
Ich war auf dotCloud süchtig nach Flask
Ich möchte mit aws mit Python spielen
Ich möchte IPython Qt Console verwenden