Einführung von vebootstrap zur einfacheren Handhabung von virtualenv in der Python-Entwicklungsumgebung

Ab Anfang 2018 wird Pipenv empfohlen. Ich habe festgestellt, dass die Anzahl der Bibliotheken, die Binärdateien für Windows bereitstellen, erheblich zugenommen hat, sodass Sie ohne die Verwendung von (Mini | Ana) Conda keine Probleme haben sollten.


Wenn ich heutzutage von der Python-Entwicklungsumgebung spreche, denke ich, dass die folgenden Muster der Mainstream sind.

Sobald Sie bereit sind, haben Sie eine flexible Umgebung, aber es gibt viele Schritte und Sie müssen viele andere Dinge als Python bereitstellen. Einige sind auch unter Windows schwer bereitzustellen. Also habe ich ein reines Python-Paket erstellt, das es ein wenig einfacher macht, die virtuelle Umgebung für jedes Projekt zu handhaben.

Motivation

Ursprünglich war das Ideal, dass es einfach einzurichten war und einfach durch Ausführen von "python hoge.py" wie bei der normalen Skriptausführung die dedizierte virtuelle Umgebung aktiviert und die erforderlichen Pakete eingeschlossen wurden. Das Skript sollte gestartet werden. Einfach ausgedrückt, das Paket, das dies erreicht, ist der diesmal erstellte "vebootstrap".

vebootstrap https://pypi.python.org/pypi/vebootstrap https://github.com/tomoemon/vebootstrap

Das interessiert mich nicht wirklich, weil ich beim Schreiben eines kleinen persönlichen Skripts nicht so oft zwischen Python-Versionen wechsle (ich sollte es bei Bedarf in Kombination mit Python usw. verwenden können).

Betriebsumgebung

Was du tun kannst

Dinge unmöglich

installieren

Installieren Sie vebootstrap mit dem Pip, der dem Python entspricht, den Sie verwenden möchten. Wenn Sie den Systemstandard Python in einer Linux-Umgebung verwenden, benötigen Sie sudo.

$ pip install vebootstrap

Wie benutzt man

Bitte ändern Sie den folgenden Verzeichnisnamen und den Namen der Skriptdatei entsprechend. Ändern Sie jedoch nicht "require.txt", da vebootstrap nach einer Datei mit diesem Namen sucht. Im Beispiel wird es auch nach "cd" im Projektverzeichnis ausgeführt, aber das Verhalten ist das gleiche, auch wenn es von außerhalb des Verzeichnisses ausgeführt wird.

** Einfachstes Muster **

Verzeichnisaufbau


project_test1/
    hoge.py

hoge.py


import vebootstrap

print("Hello vebootstrap")

Befehlsausführung


$ cd project_test1
$ python hoge.py

Wenn Sie "import vebootstrap" am Anfang von "hoge.py", dem Hauptskript, einfügen und starten, wird es beim ersten Start im Verzeichnis "project_test1" als ".py ##" ("##" ist die Python-Version) bezeichnet. Erstellen Sie ein Verzeichnis für die virtualenv-Umgebung. Führen Sie danach "hoge.py" mit aktivierter Umgebung "virtualenv" aus und aktivieren und führen Sie die vorhandene ".py ##" beim zweiten und nachfolgenden Start aus.

** Wenn es abhängige Pakete gibt **

Verzeichnisaufbau


project_test2/
    hoge.py
    requirements.txt

hoge.py


import vebootstrap
import requests

print(requests.get('http://yahoo.co.jp').text[:100])

requirements.txt


requests

Befehlsausführung


$ cd project_test2
$ python hoge.py

Gleiches gilt für das Erstellen eines Verzeichnisses für die virtualenv-Umgebung beim ersten Start von "hoge.py" und das anschließende "pip install" zum "pip install" der abhängigen Pakete. Aktivieren Sie dann die virtualenv-Umgebung und führen Sie "hoge.py" aus. Wenn Sie require.txt neu schreiben, erstellen Sie die virtualenv-Umgebung beim nächsten Start neu. (Da es schwierig sein kann, einzelne Pakete zu deinstallieren, haben wir solche Spezifikationen erstellt.)

** (nur Windows) Wenn Sie ein Binärpaket für Windows installieren möchten **

Für Windows-Benutzer ist es ziemlich schwierig, Pakete zu installieren, für die ein eigener Build erforderlich ist, z. B. "numpy" und "lxml". Sie müssen ein vorgefertigtes Paket finden und es manuell mit etwas anderem als pip (PyPI) installieren, aber vebootstrap macht dies einfach.

Insbesondere versuche ich, das Zielpaket von der folgenden Site zu finden und zu installieren. http://www.lfd.uci.edu/~gohlke/pythonlibs/

Verzeichnisaufbau


project_test3/
    hoge.py
    requirements.txt

hoge.py


import vebootstrap
import numpy

print(dir(numpy))

requirements.txt


#windows:numpy

Befehlsausführung


$ cd project_test3
$ python hoge.py

Die Verwendung ist fast die gleiche wie zuvor, aber die Beschreibung von require.txt ist etwas Besonderes. Wenn es eine Zeile der Form "# windows: hogehoge" gibt, sucht vebootstrap nach dem "hogehoge" -Paket von der vorherigen Site. Bei pip werden Zeilen, die mit "#" beginnen, als Kommentare behandelt, sodass dies nur von vebootstrap interpretiert wird.

Sie können auch die Pakete installieren, die von pip standard und den Binärdateien für Windows installiert werden, wie unten gezeigt.

requirements.txt


requests
#windows:numpy
beautifulsoup4

Ich weiß nicht, welches Paket Sie auf diese spezielle Weise vorgefertigt installieren müssen! Wenn ja, sollten Sie zuerst wie gewohnt hogehoge und require.txt schreiben. Wenn Sie einen unklaren Fehler erhalten, schreiben Sie # windows: hogehoge.

** Wenn Sie keine irrelevanten Importanweisungen einfügen möchten **

import vebootstrap ist die minimale Magie, um die virtualenv-Umgebung nur durch Ausführen von Python zu aktivieren. Es ist jedoch möglicherweise nicht erforderlich, wenn Sie ein Skript schreiben, um es der Außenwelt zugänglich zu machen. Verwenden Sie in diesem Fall die Funktion, um das Modul wie unten gezeigt als Skript auszuführen. Es verhält sich genauso wie beim Einfügen einer Importanweisung.

Verzeichnisaufbau


project_test4/
    hoge.py
    requirements.txt

hoge.py


import requests

print(requests.get('http://yahoo.co.jp').text[:100])

requirements.txt


requests

Befehlsausführung


$ cd project_test4
$ python -m vebootstrap hoge.py

** Wenn es mühsam ist, jedes Mal abhängige Pakete für die meisten Projekte zu schreiben **

Wenn Sie häufig Projekte erstellen und jedes Mal eine ähnliche require.txt schreiben, versuchen Sie, die folgenden Funktionen zu verwenden.

Wenn Sie vebootstrap auch nur einmal verwenden, wird eine Konfigurationsdatei mit dem Namen ".vebootstrap" in Ihrem Home-Verzeichnis erstellt ("cd% USERPROFILE%" für Windows-Benutzer).

$HOME/.vebootstrap


{
    "default_packages": [
        "ipython"
    ], 
    "default_windows_packages": []
}

Diese Datei gibt die Pakete an, die in allen Projekten installiert werden sollen, unabhängig vom Inhalt von "require.txt". Standardmäßig ist das "ipython" -Paket installiert, damit die REPL der entsprechenden virtuellen Umgebung sofort verwendet werden kann. Fügen Sie nach Bedarf weitere Pakete hinzu. Fügen Sie Windows-Binärdateien in der Form "numpy" zu "default_windows_packages" hinzu, und sie werden automatisch installiert.

Beispiel beim Hinzufügen einiger

$HOME/.vebootstrap


{
    "default_packages": [
        "ipython",
        "requests"
    ], 
    "default_windows_packages": [
        "numpy"
    ]
}

Vorsichtsmaßnahmen

Beachten Sie, dass die virtualenv-Umgebung für jede von Ihnen ausgeführte Python-Version erstellt wird. Wenn Sie den folgenden Befehl eingeben, z. B. wenn die Version von "Python" 2.7.x ist, erstellen Sie eine virtuelle Umgebung mit dem Namen ".py27" (die darin kopierte ausführbare Python-Datei ist 2.7.x). Dinge).

$ python hoge.py

Wenn Sie den folgenden Befehl im selben Verzeichnis ausführen, wird eine virtuelle Umgebung mit dem Namen ".py35" erstellt. (Wenn die Version von python3 3.5.x ist)

$ python3 hoge.py

schließlich

Da meine Hauptumgebung Windows ist, kann es für Linux-Hauptleute schwierig sein, es zu verwenden. Bitte weisen Sie darauf hin, wenn Sie sagen "es kann in solchen Fällen nicht verwendet werden".

Und obwohl der Paketname "vebootstrap" persönlich etwas lang (und etwas schwer zu tippen) ist, wurden sowohl "ve" als auch "veb" bereits übernommen ...

Recommended Posts

Einführung von vebootstrap zur einfacheren Handhabung von virtualenv in der Python-Entwicklungsumgebung
Entwicklungsumgebung in Python
Behandeln Sie Umgebungsvariablen in Python
Umgang mit Japanisch mit Python
Methode zum Erstellen einer Python-Umgebung in Xcode 6
So bereiten Sie die Python-Entwicklungsumgebung vor [Mac]
Erstellen Sie eine Python-Entwicklungsumgebung (pythonz, virtualenv, direnv).
Python in Virtualenv
Einführung in Python Bereiten wir die Entwicklungsumgebung vor
Verwenden Sie ein Kryptografiemodul, das OpenSSL in Python verarbeitet
Python-Entwicklungsumgebung - Verwendung von Pyenv und Virtualenv-
Arbeiten Sie in einer virtuellen Umgebung mit Python virtualenv.
Wie man mit dem Datum / Uhrzeit-Typ in Pythons SQLite3 umgeht
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
App-Entwicklung zum Twittern in Python aus Visual Studio 2017
Aufbau einer Python-Entwicklungsumgebung
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Informationen zur Python-Entwicklungsumgebung
virtuelle Umgebung in Python
Markdown mit Python behandeln
Aufbau der Python-Entwicklungsumgebung 2020 [Von der Python-Installation bis zur Einführung in die Poesie]
Einführung von Python 2.7 in CentOS 6.6
python2.7 Konstruktion der Entwicklungsumgebung
Framework-Entwicklung mit Python
Python-Memo (für mich): Über die Entwicklungsumgebung virtualenv
Slackbot-Entwicklung in Python
Umgang mit JSON in Ruby, Python, JavaScript, PHP
Befehle, die häufig in der Entwicklungsumgebung während der Python-Implementierung verwendet werden
Erstellen Sie eine Python-Entwicklungsumgebung mit Eclipse (fügen Sie einen HTML-Editor hinzu).
Videos können in der Python-Entwicklungsumgebung nicht mit Spyder geladen werden
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Einführung einer guten Methode zur Verwaltung von DB-Verbindungen in Python
UpNext2 Development Record # 1 Erstellen Sie eine Python CI-Umgebung in VS Code
Einfaches Formatieren von JSON mit Python
So löschen Sie stdout in Python
Verwalten Sie die Python-Umgebung mit virtualenv
Melden Sie sich auf der Website in Python an
Organisieren Sie die Python-Entwicklungsumgebung
[ev3dev × Python] Aufbau einer ev3dev-Entwicklungsumgebung
Python-Entwicklung mit Visual Studio 2017
Sprechen mit Python [Text zu Sprache]
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
[Zum Organisieren] Python-Entwicklungsumgebung
Einführung in die GUI: PyQt5 in Python
Wie man in Python entwickelt
Python-Entwicklung mit Visual Studio
[Python] Verwendung von virtualenv
Behandeln Sie komplexe Zahlen in Python
Post an Slack in Python
[Windows 10] [Aufbau der Entwicklungsumgebung] Auflösen, wenn ungelöste import'django.xxx-Python (ungelöster Import) in VS Code auftritt
Lernverlauf zur Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Build Docker / Django / Nginx / MariaDB-Umgebung ~
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
Von der Installation von Ansible bis zum Erstellen einer Python-Umgebung in der virtuellen Umgebung von Vagrant
[Python] Wie man PCA mit Python macht
So sammeln Sie Bilder in Python