Geonode logo
Geonode Team

Geonode Team

Diperbarui: 7 Oktober 2026

Diterbitkan: 2 September 2026

Cara Menginstal scikit-learn (Semua Metode)

`pip install scikit-learn` Itulah jawabannya. Alasan pertanyaan ini sering diajukan adalah karena nama impor dan nama paketnya berbeda, sehingga pengetikan nama impor tersebut sengaja dibuat gagal. Kegagalan tersebut bukanlah bug. Ada paket placeholder di PyPI yang satu-satunya fungsi adalah memunculkan kesalahan dan menjelaskan alasannya, dan paket tersebut ada karena alasan keamanan yang perlu dipahami. Panduan ini mencakup semua cara instalasi, persyaratan dependensi berdasarkan rilis terkini, serta kesalahan yang mungkin muncul setelahnya.

Kepentingan kami di sini pada dasarnya nihil: kami adalah Geonode dan kami menjual proxy, yang tidak ada hubungannya dengan penginstalan pustaka Python. Satu-satunya titik persinggungan ini layak dibahas sebentar — jika pip install macet di lingkungan perusahaan, itu biasanya disebabkan oleh proxy yang diwajibkan oleh jaringan Anda dan tidak dikenali oleh pip, dan solusinya adalah pip install --proxy atau variabel lingkungan standar. Kasus tersebut dibahas di bagian akhir. Selebihnya di sini tidak memerlukan infrastruktur maupun pembelian apa pun.

Jawaban Singkat

python -m venv sklearn-env
source sklearn-env/bin/activate          # Windows: sklearn-env\Scripts\activate
pip install -U scikit-learn

Atau dengan conda:

conda create -n sklearn-env -c conda-forge scikit-learn
conda activate sklearn-env

Dokumentasi resmi menjelaskan keduanya, dan menekankan pentingnya lingkungan virtual: "lingkungan virtual bersifat opsional tetapi sangat disarankan, untuk menghindari potensi konflik dengan paket lain".

Dokumentasi tersebut juga menambahkan pengingat yang sering diabaikan orang: "Anda harus selalu ingat untuk mengaktifkan lingkungan pilihan Anda sebelum menjalankan perintah Python apa pun setiap kali Anda memulai sesi terminal baru." Banyak sekali laporan "kemarin masih berfungsi" yang ternyata disebabkan oleh terminal baru yang belum memiliki lingkungan yang diaktifkan.

Mengapa pip install sklearn Gagal

Pertanyaan yang paling sering diajukan dalam hal ini, dan jawabannya adalah desain yang disengaja.

sklearn adalah nama import. scikit-learn adalah nama paket. Mengetikkan yang pertama ke dalam pip akan menginstal placeholder yang tujuan utamanya adalah untuk menghentikan Anda.

Deskripsi placeholder tersebut di PyPI sangat jelas: "paket sklearn sudah tidak digunakan lagi, gunakan scikit-learn sebagai gantinya", dengan panduan untuk "menggunakan pip install scikit-learn daripada pip install sklearn" dan untuk "mengganti sklearn dengan scikit-learn di file persyaratan pip Anda".

Alasan keberadaannya berkaitan dengan rantai pasokan, sebagaimana dijelaskan secara jelas dalam dokumentasinya:

Paket sklearn di PyPI dibuat untuk mencegah pelaku jahat menggunakan paket sklearn, karena sklearn (nama impor) dan scikit-learn (nama proyek) terkadang digunakan secara bergantian.

Dengan kata lain, para pengelola mengklaim nama yang mudah membingungkan tersebut agar tidak ada pihak lain yang dapat menggunakannya. Mengingat banyaknya orang yang mengetiknya, hal itu merupakan langkah yang bijaksana.

Dokumentasi paket tersebut menjelaskan tiga kasus khusus yang perlu diketahui jika Anda menemui situasi tersebut:

  • "pip install sklearn==1.1.3 akan menunjukkan bahwa versi 1.1.3 tidak ada, yang membingungkan" — placeholder hanya memiliki nomor versinya sendiri.
  • "pip uninstall sklearn sebenarnya tidak akan menghapus scikit-learn; Anda masih bisa menjalankan import sklearn setelahnya".
  • Memiliki keduanya di pip list memang membingungkan, namun hal ini wajar jika Anda menginstal keduanya secara tidak sengaja.

Ada jalan keluar — dengan mengatur SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True — dan hal ini dijelaskan sebagai "langkah terakhir". Jika Anda sampai harus menggunakan cara ini, solusi sebenarnya hampir selalu terletak pada dependensi Anda yang mencantumkan sklearn dalam persyaratannya. Saran dari pihak pengembang sendiri patut diikuti: "lacak paket mana yang menggunakan sklearn alih-alih scikit-learn dan laporkan ke sistem pelacakan masalah mereka".

Dalam berkas Anda sendiri, selalu tulis scikit-learn. Dalam kode Anda, selalu tulis import sklearn. Ketidakseimbangan ini bersifat permanen.

Persyaratan

Berdasarkan metadata paket untuk rilis saat ini, yang diperiksa pada September 2026.

scikit-learn 1.9.0 dirilis pada 2 Juni 2026 dan memerlukan Python 3.11 atau yang lebih baru.

Ketergantungan runtime-nya:

KetergantunganVersi minimum
NumPy1.24.1
SciPy1.10.0
joblib1.4.0
threadpoolctl3.5.0
narwhals2.0.1

Dua catatan mengenai tabel tersebut.

narwhals merupakan penambahan yang relatif baru dan tidak akan muncul dalam dokumentasi lama atau tutorial yang ditulis berdasarkan rilis sebelumnya. Jika Anda menetapkan dependensi secara manual alih-alih membiarkan pip menyelesaikannya, inilah dependensi yang paling mungkin terlewatkan.

Batas versi Python berubah. Tabel dependensi di halaman instalasi mencerminkan rilis yang didokumentasikan, dan persyaratannya telah meningkat pada versi-versi terbaru. Jika Anda menggunakan Python versi lama, pip akan menginstal scikit-learn versi lama alih-alih gagal — yang biasanya tidak menjadi masalah dan terkadang menjadi penjelasan mengapa fitur yang Anda baca tidak tersedia.

Fitur tambahan opsional dinyatakan untuk benchmarking, dokumentasi, contoh, dan pengujian, yang melibatkan matplotlib, pandas, polars, pyarrow, dan lainnya. Anda tidak memerlukan satupun dari fitur-fitur tersebut untuk menggunakan pustaka ini.

Menginstal Tanpa Lingkungan Virtual

Terkadang Anda memang ingin melakukan instalasi yang berlaku di seluruh sistem, dan ada peringatan yang menyertainya.

Dokumentasi tersebut secara spesifik menyebutkan Linux: "Khususnya di Linux, tidak disarankan untuk menginstal paket pip bersamaan dengan paket yang dikelola oleh pengelola paket distribusi (apt, dnf, pacman…)."

Alasannya adalah baik pip maupun pengelola paket distribusi Anda menganggap bahwa mereka memiliki file-file di direktori site-packages Python sistem, dan ketika keduanya berselisih, hasilnya adalah instalasi Python yang berperilaku aneh dengan cara yang sulit diurai. Pada distribusi terbaru, pip akan langsung menolak dengan pesan kesalahan "lingkungan yang dikelola secara eksternal", yang merupakan upaya ekosistem pengemasan untuk mencegah hal ini terjadi.

Jika Anda menemui kesalahan tersebut, opsi-opsi berikut disarankan berdasarkan prioritas: gunakan lingkungan virtual, gunakan pipx untuk alat baris perintah, gunakan paket python3-sklearn milik distribusi Anda jika tersedia, atau — dengan pemahaman yang jelas — atasi dengan --break-system-packages, sebuah opsi yang dinamai untuk mencegah Anda melakukannya.

Di macOS dan Windows, tekanan ini lebih ringan, tetapi saran tersebut tetap berlaku. Membuat lingkungan virtual per proyek hanya membutuhkan waktu sepuluh detik dan dapat mencegah seluruh kategori masalah.

Memverifikasi Instalasi

Dokumentasi tersebut mencantumkan perintah-perintahnya, dan menjalankan perintah-perintah tersebut hanya membutuhkan waktu sekitar tiga puluh detik.

python -m pip show scikit-learn    # version and install location
python -m pip freeze              # everything in the environment
python -c "import sklearn; sklearn.show_versions()"

Dengan conda:

conda list scikit-learn
conda list

sklearn.show_versions()

adalah tautan yang harus digunakan saat melaporkan masalah. Perintah ini menampilkan versi scikit-learn, versi Python beserta build-nya, serta versi stack numerik yang mendasarinya — yang merupakan informasi tepat yang akan diminta pertama kali oleh setiap pengelola.

Lokasi instalasi di pip show

layak diperiksa jika ada yang berperilaku aneh. Jika lokasinya mengarah ke tempat lain selain lingkungan yang Anda kira sedang Anda gunakan, Anda sudah mendapatkan jawabannya: import sklearn

akan menemukan instalasi mana pun yang muncul pertama kali di jalur (path), dan itu mungkin bukan yang baru saja Anda instal.

conda versus pip

Keduanya berfungsi. Pilihan ini terutama penting jika Anda mencampur keduanya, yang sebaiknya tidak dilakukan sembarangan.

Gunakan conda jika Anda sudah memiliki lingkungan conda, jika Anda membutuhkan pustaka numerik terkompilasi tertentu, atau jika Anda menggunakan platform yang mengharuskan Anda membangun dari sumber. Pilihlah conda-forge sebagai saluran, seperti yang disarankan dalam petunjuk resmi.

Gunakan pip jika Anda berada di lingkungan virtual Python biasa, yang mencakup sebagian besar proyek. Wheels telah diterbitkan untuk platform umum, sehingga tidak perlu kompilasi dan proses instalasi hanya memakan waktu beberapa detik.

Jangan mencampur keduanya dalam satu lingkungan tanpa pertimbangan matang. Menginstal paket dengan conda lalu memperbarui dependensi dengan pip akan menghasilkan lingkungan di mana metadata conda tidak lagi mencerminkan keadaan sebenarnya, dan kerusakan yang timbul sulit didiagnosis. Jika terpaksa, instal semua yang bisa Anda instal dengan conda terlebih dahulu, dan baru kemudian gunakan pip untuk apa yang tidak tersedia di conda.

Ada cara praktis untuk mengetahui lingkungan mana yang Anda gunakan: jika which python mengarah ke dalam direktori lingkungan conda, gunakan conda untuk lingkungan tersebut.

Kesalahan Umum Setelah Instalasi

ModuleNotFoundError: No module named 'sklearn' setelah instalasi berhasil. Hampir selalu disebabkan oleh lingkungan yang salah — terminal yang berbeda, interpreter yang berbeda, atau kernel notebook yang mengarah ke lokasi lain. Periksa dengan:

import sys; print(sys.executable)

dan bandingkan dengan lingkungan tempat Anda menginstalnya. Khususnya di Jupyter, kernel dipilih secara terpisah dari lingkungan terminal, dan menginstalnya di satu tempat tidak akan memengaruhi yang lain. Perintah %pip install scikit-learn di dalam notebook akan menginstalnya ke dalam lingkungan kernel, yang merupakan solusi yang dapat diandalkan.

ImportError yang menyebutkan NumPy atau ketidakcocokan biner. Biasanya terjadi ketidaksesuaian antara versi yang dikompilasi, yang paling sering disebabkan oleh pembaruan NumPy secara terpisah. Menginstal ulang keduanya secara bersamaan akan menyelesaikan masalah ini:

pip install --force-reinstall --no-cache-dir numpy scipy scikit-learn

Proses build yang mencoba mengkompilasi dari sumber. Ini berarti tidak ada wheel yang cocok dengan platform dan versi Python Anda — biasanya terjadi pada rilis Python yang sangat baru sebelum wheel diterbitkan, atau pada arsitektur yang tidak umum. Menunggu beberapa minggu atau menggunakan Python yang sedikit lebih lama lebih mudah daripada menginstal toolchain build.

Baik sklearn maupun scikit-learn terdapat di pip list. Anda pernah menginstal placeholder tersebut. Menghapusnya aman: pip uninstall sklearn. Seperti yang disebutkan dalam dokumentasinya, ini "sebenarnya tidak akan menghapus instalasi scikit-learn".

Peringatan mengenai thread atau threadpoolctl. scikit-learn menggunakannya untuk mengelola kumpulan thread (thread pools) dari pustaka BLAS yang mendasarinya. Mengatur OMP_NUM_THREADS secara eksplisit akan mengatasi sebagian besar masalah ini, dan hal ini layak dilakukan terutama di lingkungan kontainer, di mana pustaka yang tidak dibatasi akan dengan senang hati membuat satu thread per CPU host terlepas dari batas CPU yang Anda tetapkan.

Menetapkan Versi untuk Reproduktibilitas

Proses instalasi hanya dilakukan sekali; menjaga agar instalasi tetap sama bulan depan adalah masalah yang lebih sulit, dan sebaiknya disiapkan sebelum Anda membutuhkannya.

Tetapkan versi dalam berkas persyaratan, bukan hanya di ingatan Anda. Perintah ``pip install scikit-learn`

` saat ini dan perintah yang sama dalam enam bulan ke depan akan menghasilkan versi yang berbeda, dan API scikit-learn memang berubah di antara rilis minor — estimator mendapatkan parameter baru, nilai default berubah, dan terkadang sesuatu dihapus setelah siklus deprecation:

scikit-learn==1.9.0
numpy==2.3.1
scipy==1.16.0

Tetapkan juga tumpukan numerik, bukan hanya scikit-learn. Sebagian besar kegagalan reproduksibilitas dalam ekosistem ini berasal dari perubahan NumPy atau SciPy di bawah scikit-learn yang telah dikunci, karena antarmuka terkompilasi di antara keduanya lebih ketat daripada yang disarankan oleh penentu versi. Mengunci bagian atas pohon dan membiarkan sisanya berubah adalah pengaturan yang paling mungkin mengalami kegagalan.

Buat berkas tersebut dari lingkungan yang berfungsi, bukan dengan menuliskannya secara manual:

pip freeze > requirements.txt

Hal ini mencakup segalanya, termasuk ketergantungan transitif, yang merupakan hal yang Anda inginkan untuk sebuah aplikasi. Untuk pustaka yang akan Anda terbitkan, tentukan rentang versi dan biarkan pengguna yang menentukannya — pustaka yang mengunci versi tepat akan membuat dirinya tidak mungkin digabungkan dengan apa pun.

Catat versi-versi tersebut bersama hasil Anda. Keluaran model bergantung pada versi pustaka, dan model yang disimpan tidak portabel antar versi sembarangan — memuat kembali estimator yang disimpan oleh rilis berbeda mungkin menimbulkan peringatan, gagal, atau berperilaku berbeda tanpa pemberitahuan. Menyimpan keluaran ``sklearn.show_versions()`

` di samping model yang disimpan akan mengubah misteri di masa depan menjadi pencarian data.

Dan waspadalah terhadap model yang di-pickle sebagai format penyimpanan. Model tersebut menyertakan struktur kelas dari versi yang membuatnya, itulah sebabnya model tersebut rusak saat ada pembaruan, dan model tersebut menjalankan kode saat dimuat — sehingga pickle dari sumber yang tidak tepercaya merupakan eksekusi kode sembarangan, bukan sekadar berkas data. Untuk apa pun yang bersifat jangka panjang, pilihlah format yang dirancang untuk pertukaran data, atau setidaknya simpan kode pelatihan dan datanya agar model dapat dibangun kembali.

Menginstal di Balik Proxy Perusahaan

Inilah satu-satunya situasi di mana topik yang kita bahas relevan, dan gejalanya cukup khas.

Jika pip install

macet dan kemudian mengalami timeout, alih-alih langsung gagal dengan kesalahan resolusi nama, jaringan Anda kemungkinan memerlukan proxy yang tidak dikenali oleh pip.

pip install --proxy http://user:password@proxy.example.com:9000 scikit-learn

Atau melalui lingkungan, yang juga berlaku untuk conda dan sebagian besar alat lainnya:

export https_proxy=http://user:password@proxy.example.com:9000
export http_proxy=http://user:password@proxy.example.com:9000

Ada dua hal yang sering salah di sini.

Karakter khusus dalam kata sandi perlu dienkode dengan tanda persen. Sebuah @

atau :

dalam URL proxy akan memisahkan string di tempat yang salah, sehingga menyebabkan kegagalan otentikasi meskipun kredensialnya benar.

Penyadapan TLS mengganggu verifikasi sertifikat. Proksi perusahaan sering kali memutus koneksi TLS, dan pip kemudian menolak sertifikat tersebut karena diterbitkan oleh otoritas sertifikat (CA) organisasi Anda, bukan oleh otoritas publik. Solusi yang benar adalah mengarahkan pip ke bundel CA organisasi Anda:

pip config set global.cert /path/to/corporate-ca.pem

Solusi yang terlihat menarik adalah ``--trusted-host pypi.org`

`, yang menonaktifkan verifikasi untuk host tersebut. Pahami konsekuensinya sebelum menggunakannya: Anda memilih untuk menerima sertifikat apa pun yang disajikan oleh server tempat Anda mengunduh kode yang dapat dieksekusi.

Untuk conda, konfigurasi yang setara terdapat di ``.condarc`

di bawah ``proxy_servers

dan ``ssl_verify

`.

Pertanyaan Lainnya

Bagaimana cara menginstal scikit-learn? Gunakan perintah `

`pip install -U scikit-learndi dalam lingkungan virtual, atauconda create -n sklearn-env -c conda-forge scikit-learn`` dengan conda. Dokumentasi sangat merekomendasikan penggunaan lingkungan virtual untuk menghindari konflik dengan paket lain.

Mengapa perintah pip install sklearn gagal?

Karena sklearn adalah nama impor, bukan nama paket. Terdapat paket tempatholder di PyPI yang satu-satunya tujuannya adalah memunculkan kesalahan dan mengalihkan Anda — pengelola paket tersebut sengaja menggunakan nama yang mudah membingungkan tersebut untuk mencegah pihak jahat menerbitkan paket di bawah nama tersebut. Silakan instal scikit-learn sebagai gantinya.

Apa perbedaan antara sklearn dan scikit-learn?

scikit-learn adalah nama proyek dan paket yang digunakan dengan pip dan conda; sklearn adalah nama yang Anda gunakan dalam pernyataan import. Ketidaksimetrisan ini bersifat permanen, dan inilah alasan mengapa paket placeholder tersebut ada.

Versi Python apa yang dibutuhkan oleh scikit-learn?

Versi 1.9.0, yang dirilis pada Juni 2026, memerlukan Python 3.11 atau yang lebih baru. Rilis scikit-learn yang lebih lama mendukung versi Python yang lebih lama, dan pip akan memilih versi yang kompatibel daripada gagal — yang terkadang menjadi alasan mengapa fitur yang Anda baca tidak tersedia.

Mengapa saya mendapatkan kesalahan ModuleNotFoundError setelah menginstal?

Hampir selalu disebabkan oleh lingkungan yang salah. Periksa import sys; print(sys.executable) dan bandingkan dengan lokasi instalasi Anda. Di Jupyter, lingkungan kernel terpisah dari terminal Anda — gunakan perintah %pip install scikit-learn di dalam notebook untuk menginstal ke dalam kernel.

Haruskah saya menggunakan pip atau conda?

Gunakan pip di lingkungan virtual biasa, yang cocok untuk sebagian besar proyek dan menginstal wheel yang sudah dibangun sebelumnya dalam hitungan detik. Gunakan conda jika Anda sudah berada di lingkungan conda atau membutuhkan pustaka numerik terkompilasi tertentu. Hindari mencampur keduanya dalam satu lingkungan, karena pandangan kedua pengelola paket tersebut terhadap lingkungan tersebut akan berbeda.

Bagaimana cara memeriksa versi scikit-learn yang saya miliki?

Kunjungi python -m pip show scikit-learn untuk mengetahui versi dan lokasi instalasi, atau python -c "import sklearn; sklearn.show_versions()" untuk laporan lengkap termasuk Python dan tumpukan numerik — yang harus disertakan saat melaporkan masalah.

Bagaimana cara menginstal scikit-learn di balik proxy?

Gunakan pip install --proxy http://user:pass@host:port scikit-learn, atau atur http_proxy dan https_proxy di lingkungan Anda agar conda dan alat lainnya juga dapat mendeteksinya. Lakukan pengkodean persentase pada karakter khusus dalam kata sandi, dan konfigurasikan sertifikat CA organisasi Anda daripada menonaktifkan verifikasi.

Kesimpulan

Proses pemasangannya sendiri hanya memerlukan satu perintah. Hampir seluruh kesulitan dalam topik ini berasal dari dua hal yang tidak ada hubungannya dengan kode scikit-learn itu sendiri.

Yang pertama adalah namanya. Gunakan scikit-learn untuk menginstal, sklearn untuk mengimpor, dan ada paket pengganti dengan nama yang mirip untuk menghentikan Anda dan menjelaskan alasannya. Paket placeholder tersebut merupakan bagian kecil dari praktik rantai pasokan yang baik, dan kesalahan yang dihasilkannya berfungsi sebagaimana mestinya.

Yang kedua adalah lingkungan. Banyak sekali kegagalan — modul yang menghilang di terminal baru, notebook yang tidak dapat menemukan apa yang baru saja Anda instal, kesalahan impor setelah pembaruan yang tidak terkait — merupakan satu masalah lingkungan yang muncul dalam berbagai bentuk. Lingkungan virtual per proyek, yang diaktifkan secara sengaja, mencegah hampir semua masalah tersebut, dan perintah print(sys.executable) mendiagnosis sisanya hanya dalam satu baris.

Dan jika pip macet alih-alih menampilkan kesalahan, periksa jaringan Anda sebelum memeriksa Python. Proksi yang diperlukan namun tidak dikenali oleh pip akan menghasilkan timeout alih-alih kesalahan, yang merupakan cara membingungkan untuk memahami infrastruktur Anda sendiri.