gerekli Python paketlerini requirements.txt ile yönetme

Python projenizi başkalarıyla paylaşıyorsanız veya Python uygulamanızı oluşturmak için bir derleme sistemi kullanıyorsanız, gerekli dış paketleri belirtmeniz gerekir. Projenizi bir ortamı geri yüklemeniz gereken diğer konumlara kopyalamayı planlıyorsanız, gerekli bağımlı paketleri de tanımlamanız gerekir.

Dış bağımlı Python paketlerini belirtmek için önerilen yaklaşım, bir gereksinim dosyası (readthedocs.org) kullanmaktır. Bu dosya, projeniz için bağımlı paketlerin gerekli sürümlerini yükleyen pip komutlarının listesini içerir. En yaygın komut şudur: pip freeze > requirements.txt. Bu komut, ortamınızın geçerli paket listesini dosyaya requirements.txt kaydeder.

Gereksinimler dosyası, tüm yüklü paketlerin kesin sürümlerini içerir. Bir ortamın gereksinimlerini dondurmak için gereksinim dosyalarını kullanabilirsiniz. Hassas paket sürümlerini kullanarak ortamınızı başka bir bilgisayarda kolayca yeniden oluşturabilirsiniz. Gereksinimler dosyaları bir sürüm aralığıyla, başka bir paketin bağımlılığı olarak veya pip dışında bir yükleyiciyle yüklenmiş olsalar bile paketleri içerir.

Önkoşullar

Teknik olarak, gereksinimleri izlemek için herhangi bir dosya adı kullanılabilir. Ancak Visual Studio, "requirements.txt" adlı gereksinimler dosyası için özel destek sağlar. Dosya için -r <full path to file> tercih ettiğiniz adı belirtmek üzere bir paket yüklerken bağımsız değişkenini kullanabilirsiniz.

requirements.txt'de listelenen bağımlılıkları yükleme

Dosyası olan requirements.txt bir projeyi yüklerseniz, dosyada listelenen tüm paket bağımlılıklarını yükleyebilirsiniz.

  1. Çözüm Gezgini'da projeyi genişletin ve ardından Python Ortamları düğümünü genişletin.

  2. Paketlerini yüklemek istediğiniz ortam düğümünü bulun. Düğüme sağ tıklayın ve requirements.txt yükle'yi seçin.

    Visual Studio 2019'da gereksinimler metin dosyasından Python paketlerinin nasıl yükleneceğini gösteren ekran görüntüsü.

    Visual Studio 2022'de gereksinimler metin dosyasından Python paketlerinin nasıl yükleneceğini gösteren ekran görüntüsü.

  3. Çıkış penceresinde paket yükleme işlemini izleyebilirsiniz:

    Gereksinimler metin dosyasından Python paketlerinin yüklenmesinin çıkışını gösteren ekran görüntüsü.

    Çıkışta, etkilenen pip komutları ve daha yeni pip sürümlerinin kullanılabilirliği için gerekli güncelleştirmelerin yanı sıra yüklü olan tüm gerekli paketler listelenir.

Sanal ortama bağımlılıkları yükleme

Python paketi bağımlılıklarını mevcut bir sanal ortama da yükleyebilirsiniz.

  1. Çözüm Gezgini'de projenizi genişletin ve ardından Python Ortamları düğümünü genişletin.

  2. Paketlerini yüklemek istediğiniz sanal ortam düğümünü bulun. Düğüme sağ tıklayın ve requirements.txt yükle'yi seçin.

Sanal ortam oluşturmanız gerekiyorsa bkz . Sanal ortamları kullanma.

requirements.txt dosyasını oluşturma

Projeniz için gerekli tüm Python paketleri bir ortamda zaten yüklüyse, dosyayı Visual Studio'da oluşturabilirsiniz requirements.txt .

  1. Çözüm Gezgini'de projenizi genişletin ve ardından Python Ortamları düğümünü genişletin.

  2. Gereksinimler dosyasını oluşturmak istediğiniz ortam düğümünü bulun. Düğüme sağ tıklayın ve requirements.txt oluştur'a tıklayın.

    Visual Studio 2019'da Python paket bağımlılıkları için gereksinimler metin dosyası oluşturmayı gösteren ekran görüntüsü.

    Visual Studio 2022'de Python paket bağımlılıkları için gereksinimler metin dosyası oluşturmayı gösteren ekran görüntüsü.

Var olan bir requirements.txt dosyasına girdileri yenileme veya ekleme

requirements.txt Dosya zaten varsa, Visual Studio çeşitli seçenekler içeren bir istem görüntüler:

Gereksinimler metin dosyası zaten mevcut olduğunda, girdileri güncelleştirme veya ekleme ya da dosyayı değiştirme seçenekleriyle birlikte görüntülenen istemin ekran görüntüsü.

  • Dosyanın tamamını değiştirme: Dosyada tanımlanan tüm öğelerin, açıklamaların ve seçeneklerin requirements.text üzerine yazın.
  • Mevcut girdileri yenile: Dosyadaki requirements.text sürüm tanımlayıcılarını şu anda yüklü olan sürümle eşleşecek şekilde güncelleştirin.
  • Girdileri güncelleştirme ve ekleme: Dosyadaki requirements.text mevcut gereksinimleri yenileyin ve tüm yeni paket gereksinimlerini dosyanın sonuna ekleyin.

Visual Studio, ortamın geçerli paket gereksinimlerini algılamak için çalışır pip ve ardından dosyanızı seçiminize requirements.txt göre güncelleştirir.

Paket bağımlılıklarını el ile yükleme

Pip dosyanızda requirements.txt tanımlanan bir paket bağımlılığı yüklemezse yüklemenin tamamı başarısız olur.

Bu sorunu çözmek için iki seçeneğiniz vardır:

  • Başarısız paketi dışlamak için dosyayı el ile düzenleyin requirements.txt ve yükleme işlemini yeniden çalıştırın.

  • Paketin yüklenebilir bir sürümüne başvurmak için pip komut seçeneklerini kullanın.

Gereksinimler dosyasını pip tekerleği ile güncelleştirme

Bir bağımlılığı derlemek için komutunu kullanırsanızpip wheel, seçeneğini dosyanıza requirements.txt ekleyebilirsiniz--find-links <path>.

  1. pip wheel Gerekli bağımlılıkların listesini derlemek için komutunu çağırın:

    pip wheel azure
    

    Çıktı, toplanan paketler için oluşturulan tekerlekleri gösterir:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. find-links dosyanıza requirements.txt paket sürümü gereksinimiyle birlikte ve no-index seçeneklerini ekleyin:

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Güncelleştirilmiş gereksinimler dosyanızla pip yükleme işlemini çalıştırın:

    pip install -r requirements.txt -v
    

    Çıkış, yükleme işleminin ilerleme durumunu izler:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...