Wat is het verschil tussen “virtualenv” en “-M VENV” bij het maken van virtuele omgevingen (Python)

Sorry als ik een beetje dwaas klink.
Ik ben hierin in de war
Wat is het verschil tussen de twee
virtualenv myvenv
en
-M Venv Myvenv
De eerste werkt goed voor mij in het maken van virtuele omgevingen terwijl de ander dat niet doet.
I CD in mijn ontwikkelingsdirectory en gebruik “virtualenv myvenv ” en het creëert de virtuele omgeving. Maar als ik gebruik “-m Venv Myvenv ” geeft het gewoon fouten. Help me alsjeblieft


Antwoord 1, Autoriteit 100%

Venv is een pakket dat rechtstreeks met Python 3 wordt verzonden. Dus u hoeft u niet pip installalles te installeren.

Virtualenv In plaats daarvan is een onafhankelijke bibliotheek beschikbaar op https: // virtualenv. pypa.io/en/stabel/ en kan worden geïnstalleerd met pip.

Ze lossen hetzelfde probleem op en werken op een zeer vergelijkbare manier.

Als u Python3 gebruikt, stel ik voor om een ​​”extra” afhankelijkheid te vermijden en gewoon bij te houden met venv

Uw fout is waarschijnlijk omdat u Python2 / PIP2

gebruikt


Antwoord 2, Autoriteit 32%

Ik denk dat de virtualenv docs dit het beste uitleggen:

venvis een subset van virtualenvgeïntegreerd in de standaardbibliotheek sinds Python 3.3. De subset die betekent dat slechts een deel van virtualenvs functionaliteit is in venv:

  • venvkan langzamer zijn, omdat het geen “app-datazaadmethode” heeft “
  • venvwordt alleen geüpgraded via het upgraden van de Python-versie, terwijl virtualenvwordt bijgewerkt met PIP.
  • venvis niet uitbreidbaar
  • virtualenvheeft een uitgebreidere programmatische API(beschrijf virtuele omgevingen zonder ze te maken). Bekijk de venvAPI hier.
  • venvkan willekeurig geïnstalleerde python-versies niet automatisch ontdekken, terwijl virtualenvdat wel doet. Dit betekent dat je met venvhet volledige pad van het uitvoerbare bestand pythonmoet specificeren, als je een andere pythonversie wilt gebruiken dan de eerste in het PATH. Met virtualenvkun je gewoon het versienummer opgeven. Zie python-ontdekkingin de virtualenv-documentatie.

Voor mij zijn de verschillen vrij subtiel en het enige praktische verschil is dat venvis opgenomen in de standaardbibliotheek (sinds 3.3). Ik gebruik python -m venv venval heel lang en heb nooit een alternatief nodig gehad.

Other episodes