Tanpa Lingkungan Virtual
pip <command> --user
mengubah ruang lingkup perintah pip saat ini untuk bekerja pada lokasi pemasangan paket python lokal akun pengguna saat ini, daripada lokasi pemasangan paket seluruh sistem, yang merupakan default.
Ini hanya penting pada mesin multi-pengguna. Apa pun yang diinstal ke lokasi sistem akan terlihat oleh semua pengguna, jadi menginstal ke lokasi pengguna akan membuat instalasi paket terpisah dari pengguna lain (mereka tidak akan melihatnya, dan harus menginstalnya sendiri secara terpisah untuk menggunakannya). Karena mungkin ada konflik versi, menginstal paket dengan dependensi yang dibutuhkan oleh paket lain dapat menyebabkan masalah, jadi sebaiknya jangan mendorong semua paket yang digunakan pengguna ke lokasi pemasangan sistem.
- Jika itu adalah mesin satu pengguna, ada sedikit atau tidak ada perbedaan untuk menginstal ke
--user
lokasi. Ini akan diinstal ke folder yang berbeda, yang mungkin atau mungkin tidak perlu ditambahkan ke path, tergantung pada paket dan bagaimana itu digunakan (banyak paket menginstal alat baris perintah yang harus di path untuk menjalankan dari shell) .
- Jika ini adalah mesin multi-pengguna,
--user
lebih disukai menggunakan root / sudo atau membutuhkan instalasi administrator dan memengaruhi lingkungan Python setiap pengguna, kecuali dalam kasus paket umum yang ingin disediakan administrator untuk semua pengguna secara default.
- Catatan: Per komentar, pada sebagian besar pemasangan Unix / Linux telah ditunjukkan bahwa pemasangan sistem harus menggunakan manajer paket umum, seperti
apt
, daripada pip
.
Dengan Lingkungan Virtual
The --user
pilihan di lingkungan venv / virtualenv aktif akan menginstal ke lokasi pengguna python lokal (sama seperti tanpa lingkungan virtual).
Paket diinstal ke lingkungan virtual secara default, tetapi jika Anda menggunakannya --user
akan memaksanya untuk menginstal di luar lingkungan virtual, di direktori skrip python pengguna (di Windows, saat ini c:\users\<username>\appdata\roaming\python\python37\scripts
untuk saya dengan Python 3.7).
Namun, Anda tidak akan dapat mengakses instalasi sistem atau pengguna dari dalam lingkungan virtual (bahkan jika Anda menggunakannya --user
saat berada di lingkungan virtual).
Jika Anda menginstal lingkungan virtual dengan --system-site-packages
argumen, Anda akan memiliki akses ke folder skrip sistem untuk python. Saya percaya ini termasuk folder skrip python pengguna juga, tapi saya tidak yakin. Namun, mungkin ada konsekuensi yang tidak diinginkan untuk ini dan itu bukan cara yang dimaksudkan untuk menggunakan lingkungan virtual.
Lokasi Sistem Python dan Folder Instal Pengguna Lokal
Anda dapat menemukan lokasi folder instal pengguna untuk python python -m site --user-base
. Saya menemukan informasi yang saling bertentangan dalam Tanya Jawab, dokumentasi dan sebenarnya menggunakan perintah ini pada PC saya tentang apa defaultnya, tetapi mereka berada di bawah direktori home pengguna ( ~
pintasan di * nix, dan c:\users\<username>
biasanya untuk Windows).
Detail lainnya
The --user
pilihan adalah tidak berlaku untuk setiap perintah. Misalnya pip uninstall
akan menemukan dan menghapus paket di mana pun mereka diinstal (di folder pengguna, folder lingkungan virtual, dll.) Dan --user
opsi tidak valid.
Hal-hal yang terinstal dengan pip install --user
akan dipasang di lokasi lokal yang hanya akan terlihat oleh akun pengguna saat ini, dan tidak akan memerlukan akses root (pada * nix) atau akses administrator (pada Windows).
The --user
memodifikasi pilihan semua pip
perintah yang menerimanya untuk melihat / beroperasi pada pengguna menginstal folder, jadi jika Anda menggunakan pip list --user
itu akan hanya menunjukkan paket apa diinstal dengan pip install --user
.
import site; print site.USER_SITE
mencetak lokasi pemasangan. Bagi saya, saya mengerti/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
.