Python

Python Virtualenv-zelfstudie

Python Virtualenv-zelfstudie
De hoofdpijn van afhankelijkheidsbeheer komt vaak voor bij ontwikkelaars. Eén foutieve update vereist urenlang onderzoek om te corrigeren.  Vaak overlappen meerdere applicaties elkaar wat betreft bibliotheekafhankelijkheidsvereisten.  Dit kan ertoe leiden dat twee applicaties die in dezelfde omgeving draaien, twee versies van dezelfde bibliotheek nodig hebben.  Dit soort conflicten kunnen een aantal problemen veroorzaken, zowel bij de ontwikkeling als bij de productie.Voer Virtualenv in.  Virtualenv is een tool die afhankelijkheidssilo's creëert.  Hiermee kunt u applicaties implementeren in een enkele omgeving met geïsoleerde afhankelijkheden. Docker gebruikt een vergelijkbare strategie op OS-niveau. Virtualenv scheidt alleen op Python- en bibliotheekniveau - dat wil zeggen, de omgevingen die Python uitvoerbaar en bibliotheken zijn uniek voor die virtuele omgeving.  Dus in plaats van de bibliotheken te gebruiken die op het niveau van de besturingssysteemomgeving zijn geïnstalleerd, kunt u Python-versies en bibliotheken scheiden in virtuele silo-omgevingen.  Hierdoor kunt u meerdere applicaties in dezelfde OS-omgeving implementeren met verschillende versies van dezelfde afhankelijkheden.

Virtualenv installeren

De installatie van Virtualenv is eenvoudig. Met pip kun je de onderstaande opdracht uitvoeren vanaf de terminal:.

$ pip virtualenv installeren

Als alternatief, als je Anaconda gebruikt, moet je in plaats daarvan de onderstaande terminalopdracht gebruiken:.

$ conda virtualenv installeren

Uw terminaluitgang zou er ongeveer als volgt uit moeten zien:.

Bradleys-Mini:~ BradleyPatton$ pip install virtualenv
Virtualenv . verzamelen
Virtualenv-15 downloaden.1.0-py2.py3-geen-elke.whl (1.8 MB)
100% |████████████████████████████████| 1.8 MB 267 kB/s
Verzamelde pakketten installeren: virtualenv
Virtualenv-15 . succesvol geïnstalleerd.1.0
Bradleys-Mini:~ BradleyPatton$

Creëer een omgeving

Virtualenv heeft één hoofdopdracht:. De onderstaande regel die vanaf de terminal wordt uitgevoerd, creëert een nieuwe "silo" of virtuele Python-omgeving in de Tutorial-directory.

$ virtualenv-zelfstudie

U zou na het uitvoeren wat terminal-uitvoer moeten krijgen, zoals hieronder:.

Bradleys-Mini:site-pakketten BradleyPatton$ virtualenv Tutorial
Overschrijven /Gebruikers/BradleyPatton/anaconda/lib/python2.7/site-
packages/Tutorial/lib/python2.7/orig-voorvoegsel.txt met nieuwe inhoud
Nieuw uitvoerbaar bestand voor Python in /Users/BradleyPatton/anaconda/lib/python2.7/site-
pakketten/zelfstudie/bin/python
kopiëren /Users/BradleyPatton/anaconda/bin/python => copy
/Gebruikers/BradleyPatton/anaconda/lib/python2.7/site-pakketten/Tutorial/bin/python
kopiëren van /Users/BradleyPatton/anaconda/bin/… /lib/libpython2.7.dylib =>
/Gebruikers/BradleyPatton/anaconda/lib/python2.7/site-pakketten/Tutorial/lib/
lippython2.7.dylib
Installatietools, pip, wiel... klaar.

De opdracht virtualenv bouwt een directorystructuur met een binaire bibliotheek en een directory voor de nieuwe virtuele omgeving die is gemaakt.

Bradleys-Mini:Tutorial BradleyPatton$ ls
bin                            lib
opnemen                        pip-selfcheck.json
Bradleys-Mini: Zelfstudie BradleyPatton$

/bin bevat uw uitvoerbare bestanden, met name Python en pip.

Bradleys-Mini:bin BradleyPatton$ ls
activeren                    easy_install-2.7           python-config
activeren.csh                pip                        python2
activeren.vis               pip2                        python2.7
active_this.py           pip2.7                       wiel
easy_install                 python
Bradleys-Mini:bin BradleyPatton$

De /lib en /include mappen bevatten ondersteunende bestanden voor Python en de te ontwikkelen applicatie.

Activeer Virtualenv

Het activeringsscript werkt uw pad bij, zodat u deze virtuele omgeving kunt gebruiken zonder dat u naar de map hoeft te navigeren. Het maakt het een beetje gemakkelijker te gebruiken, maar kan worden overgeslagen als je een terminal-ninja bent en de toetsaanslagen niet erg vindt.

In de /bin directory is er een geactiveerd BASH-script. U kunt uitvoeren met behulp van de onderstaande:.

$ ./activeren

Als je uit mijn gerommel hieronder opmerkt dat ik de toestemming van het bestand moest wijzigen om uit te voeren. ik gebruikte de CHMOD 700 activeren opdracht om de machtigingen bij te werken. Mogelijk moet u deze update ook uitvoeren voordat u het activeerscript uitvoert.

Bradleys-Mini:bin BradleyPatton$ ls
activeren              easy_install-2.7     python-config
activeren.csh           pip                  python2
activeren.vis          pip2                 python2.7
active_this.py       pip2.7                wiel
easy_install           python
Bradleys-Mini:bin BradleyPatton$ ./activeren
-bash: ./activeren: Toestemming geweigerd
Bradleys-Mini:bin BradleyPatton$ sudo ./activeren
Wachtwoord:
sudo: ./activate: opdracht niet gevonden
Bradleys-Mini:bin BradleyPatton$ chmod 700 activeren
Bradleys-Mini:bin BradleyPatton$ ./activeren
Bradleys-Mini:bin BradleyPatton$

Virtualenv deactiveren

Om de wijzigingen in de omgevingsvariabele ongedaan te maken die zijn aangebracht door te activeren, voert u de volgende opdracht uit vanaf de terminal:. Hiermee worden je padwijzigingen ongedaan gemaakt alsof ze nooit zijn gebeurd. Zo simpel is het.

$ deactiveren

Een omgeving verwijderen

Het verwijderen van een virtuele omgeving is zo eenvoudig als: rm. Typ eenvoudig het volgende om de map en recursief de inhoud ervan te verwijderen:.

$ rm -r ZelfstudieVerwijderen

Wat nu

Welnu, nu moet u uw bibliotheken en toepassing in de nieuwe virtuele omgeving installeren.  Pip maakt het vinden van uw bibliotheken eenvoudig.

Ik zal niet ingaan op de subtiliteiten van pip, waarvan sommige hier te vinden zijn, maar ik zal een enkele pip-installatie demonstreren.

$ pip panda's installeren (zelfstudie) Bradleys-Mini:bin BradleyPatton$ pip panda's installeren
Panda's verzamelen
Panda's-0 in de cache gebruiken.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9
_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Numpy verzamelen>=1.9.0 (van panda's)
Numpy-1 in de cache gebruiken.14.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9
_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Python-dateutil verzamelen (van panda's)
In cache opgeslagen python_dateutil-2 gebruiken.6.1-py2.py3-geen-elke.whl
Pytz>=2011k verzamelen (van panda's)
Gecachte pytz-2017 gebruiken.3-py2.py3-geen-elke.whl
Zes verzamelen>=1.5 (van python-dateutil->panda's)
Gecachte zes-1 . gebruiken.11.0-py2.py3-geen-elke.whl
Verzamelde pakketten installeren: numpy, six, python-dateutil, pytz, pandas
Numpy-1 . succesvol geïnstalleerd.14.0 panda's-0.22.0
python-dateutil-2.6.1 pytz-2017.3 zes-1.11.0
(Tutorial) Bradleys-Mini:bin BradleyPatton$

De volgende opdracht opent een Python-interpreteropdrachtregel:.  Ik zal onze nieuwe panda-bibliotheek importeren en de versie controleren. Versie 19 is mijn wereldwijde panda-versie, maar zoals je kunt zien aan de terminal-output, is de versie die in onze virtuele Tutorial-omgeving wordt gebruikt 22.

$ python (zelfstudie) Bradleys-Mini:bin BradleyPatton$ python
Python 2.7.13 |Continuum Analytics, Inc.| (standaard, 20 december 2016, 23:05:08)
[GCC 4.2.1 compatibele Apple LLVM 6.0 (clang-600.0.57)] op darwin
Typ "help", "copyright", "credits" of "licentie" voor meer informatie.
Anaconda wordt u aangeboden door Continuum Analytics.
Kijk eens op: http://continuum.io/bedankt en https://anaconda.org
>>> panda's importeren
>>> panda's.__versie__
jij'0.22.0'
>>>

Deze tutorial zou je op weg moeten helpen met Virtualenv.  Ik heb de link naar de Virtualenv-pagina toegevoegd die kan helpen bij een grondige configuratie met behulp van parameters en configuratie-instellingen die in speciale omstandigheden kunnen worden gebruikt.

Referenties

https://virtualenv.pypa.io/nl/stabiel

SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...