Saya sedang mencari cara untuk membuat virtualenv yang akan berisi hanya beberapa perpustakaan (yang saya pilih) dari instalasi python dasar.
Agar lebih konkret, saya mencoba mengimpor matplotlib saya ke virtualenv selama pembuatan virtualenv. Itu tidak dapat diinstal secara efisien dengan pip atau easy_install karena merindukan beberapa lib compiler fortran. Cara saya melakukannya sampai sekarang adalah menyalin secara manual
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
namun ini mencegah tautan yang diimpor secara manual didaftarkan oleh kuning telur (yang mencetak semua lib yang tersedia saat ini di virtualenv).
Jadi, apakah ada cara untuk melakukan varian selektif
virtualenv --system-site-packages
python
virtualenv
TheMeaningfulEngineer
sumber
sumber
--system-site-packages
. Jawaban menyarankan menggunakan non-selektif--system-site-packages
dan kemudian menginstal ulang beberapa paket secara lokal, apa yang berbeda dan memiliki implikasi yang berbeda.Jawaban:
Buat lingkungan dengan
virtualenv --system-site-packages
. Kemudian, aktifkan virtualenv dan ketika Anda ingin hal-hal yang diinstal di virtualenv daripada sistem python, gunakanpip install --ignore-installed
ataupip install -I
. Dengan cara itu pip akan menginstal apa yang Anda minta secara lokal meskipun versi seluruh sistem ada. Penerjemah python Anda akan mencari pertama di direktori paket virtualenv, sehingga paket-paket itu harus membayangi yang global.sumber
no-global-site-packages
diaktifkan. Tetapi untuk beberapa alasan saya tidak tahu ada paket yang digunakan dari sistem global. Menggunakanpip install -I
untuk paket dari dalam virtualenv tidak berfungsi. Saya akhirnya mencopot sementara paket baik dari virtualenv dan sistem global, kemudian saya bisa menginstalnya kembali di virtualenv dan dalam sistem (dalam urutan itu). Jadi sekarang berfungsi dengan baik.Anda dapat menggunakan
--system-site-packages
dan kemudian "overinstall" hal-hal spesifik untuk virtualenv Anda. Dengan begitu, semua yang Anda instal ke virtualenv Anda akan diambil dari sana, jika tidak akan diambil dari sistem Anda.sumber
Instal env virtual dengan
dan gunakan
pip install -U to install matplotlib
sumber
Anda bisa menggunakannya
virtualenv --clear
. yang tidak akan menginstal paket apa pun, lalu instal yang Anda inginkan.sumber