Στη Python, η import είναι ο τρόπος με τον οποίο φέρνετε κώδικα από μια μονάδα σε μια άλλη. Δεν είναι «main import» — αυτό δεν είναι όρος Python. Εδώ είναι πώς λειτουργεί πραγματικά, με τα μοτίβα που θα χρησιμοποιείτε καθημερινά.
import module_name
Αυτό φορτώνει το module_name και το δέσμευσε σε μια μεταβλητή στον τρέχοντα ονοματοχώρο. Προσβάσετε στα περιεχόμενά του με σημειογραφία τελείας:
import math math.sqrt(16) # 4.0 math.pi # 3.14159...
import pandas as pd import numpy as np df = pd.DataFrame({'a': [1,2,3]}) arr = np.array([1,2,3])
Πλεονεκτήματα: Εξακριβωτικό, αναγνώσιμο, αποφεύγει συγκρούσεις ονομάτων, δείχνει προέλευση.
from math import sqrt, pi sqrt(16) # 4.0 — καμία πρόθεμα απαιτείται pi # 3.14159...
Χρησιμοποιήστε όταν: Χρησιμοποιείτε λίγα ονόματα έντονα. Αποφύγετε: from module import * (ρύπανση ονοματοχώρου).
import matplotlib.pyplot as plt import seaborn as sns
Σταθερές συμβάσεις (pd, np, plt, sns, tf, torch) κάνουν τον κώδικα άμεσα αναγνώσιμο.
# Μόνο εισαγωγή βαρών deps όταν χρειάζονται def analyze_data(): import pandas as pd # Τοπική εισαγωγή — γρηγορότερη εκκίνηση αν δεν χρησιμοποιείται return pd.read_csv('data.csv')
sys.modules — αν ήδη φορτωμένο, επιστροφή cached modulesys.path (τρέχον dir, PYTHONPATH, site-packages, stdlib)sys.modulessys.path) import sys sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', # '/home/user/.local/lib/python3.11/site-packages', ...]
'' = τρέχον directory script (ή CWD αν interactive)pip install package → site-packagessite-packages import package.submodule from package import submodule from package.submodule import function
Δirectory με __init__.py = πακέτο. Το __init__.py μπορεί να εκθέτει υπομονάδες:
# package/__init__.py from .submodule import public_function __all__ = ['public_function']
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
ModuleNotFoundError | Δεν εγκατεστημένο / λάθος env / typo | pip install, έλεγξτε venv, έλεγξτε spelling |
ImportError: cannot import name | Κυκλικό import / όνομα δεν υπάρχει στο module | Επαναρρύθμιση, μετακίνηση imports μέσα σε functions |
| Σύγκρουση ονόματος | from x import * ή τοπικό αρχείο σκιάζει stdlib | Μην ονομάζετε αρχεία math.py, random.py· χρησιμοποιήστε explicit imports |
| Relative import error | Εκτέλεση module ως script | Τρέξτε ως python -m package.module ή χρησιμοποιήστε absolute imports |
import module πάνω από from module import *pyproject.toml, pip install -e .)from __future__ import annotations + TYPE_CHECKING guards # Standard library import json import os from pathlib import Path from typing import List, Optional # Third-party import numpy as np import pandas as pd import requests # Local from myproject.config import settings from myproject.models import User from myproject.utils import logger
Το σύστημα import της Python είναι ισχυρό, ρητό και προβλέψιμο — μόλις κατανοήσετε το μοντέλο ονοματοχώρων. Το χρυσό κανόνα: κάνετε προφανές την προέλευση κάθε ονόματος. Το μελλοντικό εσείς (και οι συναδέλφοι) θα σας ευχαριστήσουν.