Python modüllerini nasıl bulur?
Kesinlikle alındığında, bir modül tek bir python dosyasıdır, paket ise python dosyalarını __init__.pyalmak için bir paket olduğunu söylemek için adında bir (boş olabilir) dosya eşliğinde python dosyalarını içeren bir klasördür . Her iki durumda da, modüllerin .pyuzantılarına ihtiyacı vardır , ancak bunları içe aktarmadan yapılır (aşağıya bakınız).
Varsayılan olarak, Python içindeki modüllerini ve paketlerini arar $PYTHONPATH.
$ PYTHONPATH’da neler olduğunu bulmak için, aşağıdaki kodu python (3) ile çalıştırın:
import sys
print(sys.path)
Bir dizin nasıl eklenir
Bazen
Bir python dosyası içinden, python uygulamanızın veya komut dosyanızın baş bölümüne aşağıdaki satırları ekleyerek ara sıra varsayılan yola yol (lar) ekleyebilirsiniz:
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
Örneğin:
eğer bir klasörüm varsa: /home/myname/pythonfilesve module_1.pyo dizinde bulunan dosyayı almak istiyorum , bunu kodumun baş kısmına ekliyorum:
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
Ve sadece dosyayı kullanarak içe aktarabilirim module_1.py:
import module_1
Bir paket oluşturduğumda ve paketten modül (ler) almak istediğimde, içinde $PYTHONPATH(boş olabilir) bir dosya eşliğinde, modülleri içeren bir klasör oluşturmam gerekiyor__init__.py
Örneğin:
Adlı bir paketi (klasör) den almak için my_packagede /home/myname/pythonfileseklemek /home/myname/pythonfilesadresinden Müşteri yolunu $PYTHONPATHörnek 1'de olduğu gibi, ve denir modülü almak module_2.pybasitçe ile (paket klasörün içinde): `
from <packagename> import module_2
$PYTHONPATHKalıcı olarak dizin ekleme :
Dosyana aşağıdaki satırı ekleyin ~/.profile.
export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add
Alt Dizinler
Bir paket içinde, alt dizinler bu şekilde dahil edilmez; Dizinleri "zincirlemeniz" gerekir. Bir modülü almak için module_3.py, klasörün subfolderiçindeki klasörün içine packagename:
import packagename.subfolder.module_3
Paketteki tüm alt klasörlerin kendi __init__.pydosyalarını içerdiği gerçeği göz önüne alındığında .
Bir modül, komut dosyası veya uygulama ile aynı dizinde olduğunda
Komut veya uygulama ile aynı dizinde olduğunda, bir modüle yol eklemek gerekmez, otomatik olarak eklenir.
Örnek:
İçinde script.pyve var olan bir klasörüm varsa module.py, modülü basitçe içe aktarabilirim:
import module
__init__.pyKlasöründe bir dosya var mı? python nasıl paketler yaratır ve modülleri o paketten almanıza izin verir. guide.python-distribute.org/creation.html