pacchetti opzionali al momento dell'installazione.
Suppongo che tu stia parlando dello script setup.py
. Si potrebbe cambiare per avere:
# mypackage/setup.py
extras = {
'with_simplejson': ['simplejson>=3.5.3']
}
setup(
...
extras_require=extras,
...)
allora si può fare uno di:
pip install mypackage
,
pip install mypackage[with_simplejson]
con quest'ultimo installazione simplejson>=3.5.3
.
Invece di provare a installare tutto e fallback su una versione nota, si consiglia di installare il sottoinsieme di pacchetti che si conosce.
pacchetti opzionali al momento dell'esecuzione.
Dopo aver installato due diversi set di pacchetti, è necessario il per assicurarsi di poterli utilizzare se disponibili. Per esempio. per la vostra json
importazione:
try:
# helpful comment saying this should be faster.
import simplejson as json
except ImportError:
import json
Un altro esempio più complesso:
try:
# xml is dangerous
from defusedxml.cElementTree import parse
except ImportError:
try:
# cElementTree is not available in older python
from xml.cElementTree import parse
except ImportError:
from xml.ElementTree import parse
Ma si può anche trovare questo modello in alcuni pacchetti:
try:
optional_package = None
import optional.package as optional_package
except ImportError:
pass
...
if optional_package:
# do addtional behavior
opzionale vorrebbe dire che se il pacchetto non riesce a installare, l'installazione può completare senza impedimenti. –
Ok, ma se non * vitaly si basa * su un pacchetto, perché inserirlo nei * pacchetti richiesti * comunque? Semplicemente non capisco il punto. – Constantinius
Non voglio metterlo nella lista 'required'; questo è quello che sto chiedendo - c'è un'altra opzione in modo che io possa averlo incluso se disponibile, ma ignorato se no? –