Domanda

Mi piacerebbe di solito preferisco creare virtualenvs con --no-site-packages opzione per più di isolamento, e anche perché di default pitone pacchetti globale include un bel po 'di pacchetti, e di solito la maggior parte di loro non sono necessari. Tuttavia avrei ancora voglia di mantenere un paio di selezionare i pacchetti in globale, come il PIL o psycopg2. C'è un buon modo per includerli nella virtualenv, che può anche essere automatizzato facilmente?

È stato utile?

Soluzione

Se stai usando virtualenvwrapper e si potrebbe essere in grado di utilizzare il postmkvirtualenv script per creare automaticamente i collegamenti simbolici nella directory del nuovo virtualenv sitepackages.

#!/bin/sh
cdsitepackages
ln -s /path/to/system/site-packages/package-name
cdvirtualenv

Altri suggerimenti

Se si utilizza virtualenvwrapper , il comando add2virtualenv guscio deve essere presente in un virtualenv attiva. Usa:

add2virtualenv /path/to/package

per aggiungere una voce al file _virtualenv_path_extensions.pth PTH nei vostri virtualenv site-packages.

Il vantaggio di utilizzare add2virtualenv piuttosto che creare link simbolici te stesso, è che si può rimuovere il pacchetto da essere importabile commentando la sua linea nel file di PTH. Questo rende più facile per verificare la validità del codice contro diverse versioni di una libreria da cui dipende.

Non ho effettivamente provato questo con questi pacchetti specifici, ma direi che un semplice link simbolico dai site-packages globali in site-packages del VIRTUALENV potrebbe funzionare, e questo è facilmente script.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top