ho preso uno sguardo a cosa succede quando si esegue l'importazione sympy, e importa tutto sympy.
https://github.com/sympy/sympy/blob/master/sympy/__init__.py
Se si utilizzano solo alcune parti del sympy, quindi importare solo quelle parti di cui avete bisogno.
Sarebbe bello se si potesse fare questo:
import sympy.sets
Ma (come fai notare) che le importazioni sympy e poi imposta.
Una soluzione è scrivere il proprio importatore. Puoi farlo con l'aiuto del modulo imp.
import imp
sets = imp.load_module("sets", open("sympy/sets/__init__.py"), "sympy/sets/__init__.py", ('.py', 'U', 1))
Ma anche questo potrebbe non ottimizzare abbastanza.Dando uno sguardo al sympy/sets/__init__.py
vedo che fa questo:
from .sets import (Set, Interval, Union, EmptySet, FiniteSet, ProductSet,
Intersection, imageset, Complement, SymmetricDifference)
from .fancysets import TransformationSet, ImageSet, Range, ComplexRegion
from .contains import Contains
from .conditionset import ConditionSet
Forse è possibile importare solo il modulo imposta da imposta simpy namespace?
import imp
sets = imp.load_module("sets", open("sympy/sets/set.py") "sympy/sets/set.py", ('.py', 'U', 1))
Sembra che gli sviluppatori di 'sympy' siano a conoscenza di questo problema. C'è un [vecchio bug report] (https://github.com/sympy/sympy/issues/3396), e ci sono anche diversi commenti in ['sympy/__ init __. Py'] (https://github.com/sympy /sympy/blob/master/sympy/__init__.py) che menziona le importazioni lente. Forse presentare un problema di nuovo? (Dopo esserti assicurato di utilizzare la versione più recente) –
Riscrivi la tua applicazione CLI in modo che tu possa eseguirla solo una volta, ma alimentarla con più input diversi ...? – twalberg
@twalberg A quel punto non è più un'applicazione CLI. Per essere più specifici, la mia applicazione è un interprete di lingua. – orlp