Pouvez-vous définir des alias pour les modules importés en Python?

141

En Python, est-il possible de définir un alias pour un module importé?

Par exemple:

import a_ridiculously_long_module_name

... donc cela a un alias de 'short_name'.

Jordan Parmer
la source

Réponses:

191
import a_ridiculously_long_module_name as short_name

fonctionne aussi pour

import module.submodule.subsubmodule as short_name
vartec
la source
depuis le module import sub_module_1 as s1, sub_module_2 as s2
phreed
40

Vérifiez ici

import module as name

ou

from relative_module import identifier as name
Brian R. Bondy
la source
7
Hmm, quand j'essaye de faire from name import X(après la définition de l'alias) j'obtiens No module named name. Pouvons-nous importer des modules à partir d'alias?
Amelio Vazquez-Reina
2
Il semble que vous ne pouvez pas, voici la réponse la plus claire que j'ai trouvée pour ce stackoverflow.com/a/40823467
fr_andres
32

Si vous avez fait:

import long_module_name

vous pouvez également lui donner un alias en:

lmn = long_module_name

Il n'y a aucune raison de le faire de cette façon dans le code, mais je trouve parfois cela utile dans l'interpréteur interactif.

John Fouhy
la source
5
À certaines fins, c'est mieux que les principales réponses (import long_module_name comme lmn) car vous pouvez toujours référencer le module à la fois par long_module_name.x et lmn.x
Anas Elghafari
Voici la réponse techniquement correcte à la question: alias pour les modules importés.
DigitalEye
2
La raison pour laquelle cela est possible est que les modules sont des objets de première classe en Python.
md2perpe
0

Oui, les modules peuvent être importés sous un nom d'alias. en utilisant comme mot-clé. Voir

import math as ilovemaths # here math module is imported under an alias name
print(ilovemaths.sqrt(4))  # Using the sqrt() function
PythonLover
la source
0

depuis MODULE importer TAGNAME comme ALIAS

邢 烽 朔
la source
1
Pouvez-vous être plus précis? Cette réponse n'est pas formatée correctement et ne donne aucune explication.
10 Rep