

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menentukan dependensi menggunakan file persyaratan pada Elastic Beanstalk
<a name="python-configuration-requirements"></a>

Topik ini menjelaskan cara mengkonfigurasi aplikasi Anda untuk menginstal paket Python lain yang diperlukan. Aplikasi Python tipikal memiliki dependensi pada paket Python pihak ketiga lainnya. Dengan platform Elastic Beanstalk Python, Anda memiliki beberapa cara untuk menentukan paket Python yang bergantung pada aplikasi Anda.

## Gunakan `pip` dan `requirements.txt`
<a name="python-configuration-requirements.txt"></a>

Alat standar untuk memasang paket Python adalah `pip`. Alat ini memiliki fitur yang memungkinkan Anda untuk menentukan semua paket yang Anda butuhkan (dan juga versinya) dalam satu file persyaratan. Untuk informasi selengkapnya tentang file persyaratan, lihat [Format File Persyaratan](https://pip.pypa.io/en/latest/reference/requirements-file-format/#requirements-file-format) di situs web dokumentasi pip.

Buat file bernama `requirements.txt` dan letakkan di direktori tingkat atas dari paket sumber Anda. Berikut ini adalah contoh file `requirements.txt` untuk Django.

```
Django==2.2
mysqlclient==2.0.3
```

Di lingkungan pengembangan, Anda dapat menggunakan perintah `pip freeze` untuk menghasilkan file persyaratan Anda.

```
~/my-app$ pip freeze > requirements.txt
```

Untuk memastikan bahwa file persyaratan Anda hanya berisi paket yang benar-benar digunakan oleh aplikasi Anda, gunakan [lingkungan virtual](python-development-environment.md#python-common-setup-venv) yang hanya menginstal paket tersebut. Di luar lingkungan virtual, output dari `pip freeze` akan menyertakan semua paket `pip` yang diinstal pada mesin pengembangan Anda, termasuk yang disertakan pada sistem operasi Anda.

**catatan**  
Pada versi platform Python Amazon Linux AMI, Elastic Beanstalk aslinya tidak mendukung Pipenv atau Pipfiles. Jika Anda menggunakan Pipenv untuk mengelola dependensi aplikasi Anda, jalankan perintah berikut untuk menghasilkan file `requirements.txt`.  

```
~/my-app$ pipenv lock -r > requirements.txt
```
Untuk mempelajari selengkapnya, lihat [Menghasilkan requirements.txt](https://pipenv.readthedocs.io/en/latest/advanced/#generating-a-requirements-txt) dalam dokumentasi Pipenv.

## Gunakan Pipenv dan `Pipfile`
<a name="python-configuration-requirements.pipenv"></a>

Pipenv adalah alat pengemasan Python modern. Alat tersebut mengombinasikan instalasi paket dengan pembuatan dan pengelolaan file dependensi dan virtualenv untuk aplikasi Anda. Untuk informasi lebih lanjut, lihat [Pipenv: Alur Kerja Python Dev untuk Manusia](https://pipenv.readthedocs.io/en/latest/).

Pipenv memelihara dua file: 
+ `Pipfile`— File ini berisi berbagai jenis dependensi dan persyaratan.
+ `Pipfile.lock`— File ini berisi snapshot versi yang memungkinkan build deterministik.

Anda dapat membuat file-file ini di lingkungan pengembangan Anda dan memasukkannya ke dalam direktori tingkat atas bundel sumber yang Anda gunakan ke Elastic Beanstalk. Untuk informasi selengkapnya tentang dua file ini, lihat [Contoh Pipfile dan Pipfile.lock](https://pipenv.pypa.io/en/latest/basics/#).



Contoh berikut menggunakan Pipenv untuk menginstal Django dan kerangka kerja REST Django. Perintah ini membuat file `Pipfile` dan `Pipfile.lock`.

```
~/my-app$ pipenv install django
~/my-app$ pipenv install djangorestframework
```

 

## Precedence
<a name="python-configuration-requirements.precedence"></a>

Jika Anda menyertakan lebih dari satu file persyaratan yang dijelaskan dalam topik ini, Elastic Beanstalk hanya menggunakan salah satunya. Daftar berikut menunjukkan yang diutamakan, dalam urutan menurun.

1. `requirements.txt`

1. `Pipfile.lock`

1. `Pipfile`

**catatan**  
Dimulai dengan rilis platform Amazon Linux 2 7 Maret 2023, jika Anda menyediakan lebih dari satu file ini, Elastic Beanstalk akan mengeluarkan pesan konsol yang menyatakan salah satu file dependensi mana yang digunakan selama penerapan.

Langkah-langkah berikut menjelaskan logika yang diikuti Elastic Beanstalk untuk menginstal dependensi saat menerapkan instance.
+ Jika ada `requirements.txt` file, kami menggunakan perintah`pip install -r requirements.txt`.
+ Dimulai dengan rilis platform Amazon Linux 2 7 Maret 2023, jika tidak ada `requirements.txt` file, tetapi ada`Pipfile.lock`, kami menggunakan perintah`pipenv sync`. Sebelum rilis itu, kami menggunakan`pipenv install --ignore-pipfile`.
+ Jika tidak ada `requirements.txt` file atau a`Pipfile.lock`, tetapi ada`Pipfile`, kami menggunakan perintah`pipenv install --skip-lock`.
+ Jika tidak satu pun dari tiga file persyaratan ditemukan, kami tidak menginstal dependensi aplikasi apa pun.