Jika Anda memindahkan proyek Python di Mac Anda dan .venv-nya berhenti berfungsi, buat ulang environment tersebut di lokasi baru proyek. Virtual environment Python memuat path yang terikat dengan tempat pembuatannya, sehingga mengubah nama folder atau direktori induk dapat merusak aktivasi dan perintah yang terinstal. Pertahankan file proyek Anda, hapus saja .venv yang lama, lalu buat environment baru dan instal ulang dependensi dari file dependensi proyek. Dokumentasi venv Python menjelaskan environment pada umumnya tidak portabel dan menyarankan untuk membuatnya ulang setelah dipindahkan.
Mengapa environment yang dipindahkan menjadi rusak
Sebuah virtual environment menyimpan konfigurasi Python-nya dan membuat skrip yang terinstal dengan path menuju interpreter environment tersebut. Saat Anda memindahkan folder proyek, path tersebut mungkin masih merujuk ke lokasi lama. Hal itu dapat menyebabkan source .venv/bin/activate merujuk ke file yang hilang, atau membuat perintah yang terinstal di environment memanggil interpreter yang sudah tidak ada lagi. Menjalankan ulang aktivasi atau mengganti nama environment tidak dapat memperbaiki path yang tertanam tersebut secara andal; solusi terdokumentasi dari Python adalah membuat ulang environment di lokasi barunya. Python: venv and how environments work
1. Buka proyek yang dipindahkan di Terminal
Di Terminal, berpindahlah ke direktori proyek saat ini. Di zsh atau bash, berikan tanda kutip pada path jika mengandung spasi atau karakter shell; ganti contoh path dengan lokasi folder yang sebenarnya:
cd "$HOME/Projects/My Python Project"
pwd
ls -la
Pastikan Anda berada di direktori utama (root) proyek dan dapat melihat file sumber serta informasi dependensinya. Catatan dependensi umum meliputi requirements.txt, pyproject.toml, dan file lock khusus proyek. Jangan menghapus seluruh proyek atau file dependensinya. Jika Anda tidak yakin direktori mana yang merupakan environment lama, periksa isinya sebelum menghapus apa pun.
2. Hapus environment lama saja
Jika direktori environment bernama .venv dan berada di dalam root proyek, hapus direktori itu saja. Pertama, nonaktifkan jika shell prompt menunjukkan bahwa environment tersebut aktif; deactivate adalah perintah shell yang terdokumentasi. Kemudian jalankan:
deactivate
rm -rf .venv
Jika tidak ada environment yang aktif, deactivate mungkin melaporkan bahwa perintah tersebut tidak tersedia; lanjutkan saja tanpanya. Sebelum menjalankan rm -rf .venv, verifikasi bahwa pwd menunjukkan root proyek dan bahwa .venv adalah environment yang ingin Anda ganti. Jika environment Anda menggunakan nama lain atau berada di tempat lain, ganti dengan path yang tepat dan hindari menghapus kode sumber atau data proyek. Python merekomendasikan untuk menghapus environment lama setelah membuatnya ulang di lokasi baru; artikel ini menghapusnya terlebih dahulu agar target yang dimaksud tidak membingungkan. Python: venv and how environments work
3. Buat ulang environment dengan Python yang sesuai
Jika proyek menentukan versi Python tertentu, gunakan interpreter yang cocok dan tersedia di Mac Anda. Misalnya, jika python3.12 terinstal dan proyek memerlukan versi tersebut:
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip --version
Jika proyek tidak menentukan versi dan python3 standar Anda cocok, gunakan python3 -m venv .venv sebagai gantinya. Di macOS, perintah aktivasi standar untuk zsh dan bash adalah source .venv/bin/activate. Verifikasi output dari python --version sebelum memulihkan paket; python harus merujuk ke interpreter environment setelah diaktifkan. Python: venv activation and interpreter paths
Pengguna Homebrew sebaiknya menyimpan paket-paket proyek di dalam virtual environment. Homebrew mendokumentasikan Python saat ini sebagai externally managed dan merekomendasikan environment proyek untuk dependensi. Jika python3 tidak ada atau memilih interpreter yang tidak sesuai, konsultasikan dengan penginstal atau version manager yang menyediakan Python proyek tersebut; jangan mencoba memperbaiki environment dengan menginstal paket ke dalam direktori Python yang dikelola macOS. Homebrew: Language Runtimes and Packages
4. Instal ulang dependensi dari proyek
Gunakan instruksi dependensi atau file lock proyek yang sudah ada jika tersedia. Untuk proyek yang mencatat dependensi di requirements.txt, instal ulang dependensi tersebut menggunakan Python dan pip milik environment:
python -m pip install -r requirements.txt
Menggunakan python -m pip akan mengaitkan pip ke interpreter yang dipilih oleh python. Jika proyek menggunakan pengelola dependensi lain atau file lock, ikuti prosedur penginstalan terdokumentasi dari alat tersebut alih-alih membuat file requirements baru atau mengabaikan lock. venv yang baru secara default sudah menyertakan pip, dan dokumentasi Python secara khusus menyebutkan file requirements sebagai cara untuk membuat ulang paket yang terinstal. Python: venv, Python: Installing Python modules
Jika penginstalan gagal karena sebuah paket memerlukan kompilator, pustaka native, atau versi Python yang tidak didukung oleh proyek, virtual environment itu sendiri mungkin telah berhasil dibuat ulang dengan benar sementara dependensi tersebut masih membutuhkan prasyarat yang terdokumentasi. Baca panduan penginstalan paket atau proyek dan atasi kesalahan spesifik tersebut; jangan mengatasinya dengan menggunakan sudo pip atau mengubah kepemilikan file Python sistem. Homebrew menyarankan untuk tidak menggunakan solusi alternatif tersebut untuk direktori terkelola. Homebrew: Language Runtimes and Packages
5. Periksa apakah environment yang diperbaiki sudah aktif
Pastikan interpreter yang dipilih berada di dalam .venv yang baru, lalu jalankan perintah normal proyek atau instruksi pengujian:
python -c 'import sys; print(sys.executable)'
Path yang ditampilkan harus merujuk ke dalam direktori .venv milik proyek. Jika merujuk ke tempat lain, aktifkan kembali environment dari root proyek dan periksa pengaturan startup shell atau alias perintah yang mengubah pemilihan Python. Pemeriksaan ini mengonfirmasi pemilihan interpreter; hal ini tidak membuktikan bahwa setiap dependensi proyek atau fitur aplikasi berfungsi.
Virtual environment yang dipindahkan paling baik diperlakukan sebagai sesuatu yang sekali pakai: amankan kode sumber dan catatan dependensi, lalu bangun ulang .venv di mana pun proyek saat ini berada. Mengulangi langkah-langkah ini setelah pemindahan berikutnya adalah jalur pemulihan terdokumentasi yang andal.
Sumber
venv — Creation of virtual environments — Python Software Foundation
Installing Python modules — Python Software Foundation
Language Runtimes and Packages — Homebrew