Sanal Ortamlar Olmadan
pip <command> --user
geçerli sistem komutunun kapsamını, varsayılan olarak sistem genelinde paket yükleme konumu yerine geçerli kullanıcı hesabının yerel python paketi yükleme konumunda çalışacak şekilde değiştirir.
Bu sadece çok kullanıcılı bir makinede önemlidir. Sistem konumuna yüklenen her şey tüm kullanıcılar tarafından görülebilir, bu nedenle kullanıcı konumuna yükleme, paket yüklemesini diğer kullanıcılardan ayrı tutar (görmezler ve kullanmak için ayrı ayrı yüklemeleri gerekir). Sürüm çakışmaları olabileceğinden, diğer paketlerin ihtiyaç duyduğu bağımlılıklara sahip bir paket yüklemek sorunlara neden olabilir, bu nedenle belirli bir kullanıcının kullandığı tüm paketleri sistem yükleme konumuna zorlamamak en iyisidir.
- Tek kullanıcılı bir makineyse, makineye takmak için çok az veya hiç fark yoktur.
--user
konuma . Pakete ve nasıl kullanıldığına bağlı olarak yola eklenmesi gerekebilecek veya olmayabilecek farklı bir klasöre yüklenecektir (birçok paket bir kabuktan çalıştırmak için yolda olması gereken komut satırı araçlarını yükler) .
- Çok kullanıcılı bir makine
--user
ise, yöneticinin varsayılan olarak tüm kullanıcılara sunmak istediği genel paketler haricinde, root / sudo kullanmak veya yönetici kurulumu gerektirmek ve her kullanıcının Python ortamını etkilemek tercih edilir.
- Not: Yorumlar Per, çoğunda Unix / Linux sistem yüklemeleri gibi, genel paket yöneticisini kullanması gerektiğini işaret edilmiştir yükler
apt
ziyade, pip
.
Sanal Ortamlarla
--user
Aktif bir venv / Virtualenv ortamında seçenek yerel kullanıcı piton konumu (sanal ortamda olmadan aynı) için yükler.
Paketler sanal ortama varsayılan olarak yüklenir, ancak kullanırsanız --user
, sanal ortamların dışında, kullanıcıların python komut dosyası dizinine yüklemeye zorlar (Windows'ta, bu c:\users\<username>\appdata\roaming\python\python37\scripts
benim için Python 3.7 ile).
Ancak, bir sisteme veya kullanıcı kurulumuna sanal ortam içinden erişemezsiniz (sanal bir ortamdayken kullansanız bile --user
).
Bağımsız --system-site-packages
değişkeni olan bir sanal ortam yüklerseniz , python için sistem komut dosyası klasörüne erişebilirsiniz. Bu da kullanıcı python komut dosyası klasörü dahil inanıyorum, ama emin değilim. Bununla birlikte, bunun istenmeyen sonuçları olabilir ve sanal ortamları kullanmanın amaçlanan yolu değildir.
Python Sisteminin Konumu ve Yerel Kullanıcı Yükleme Klasörleri
İle python için kullanıcı yükleme klasörünün konumunu bulabilirsiniz python -m site --user-base
. Q & A, belgelerde çakışan bilgiler buluyorum ve aslında bu komutu bilgisayarımda varsayılanların ne olduğuna göre kullanıyorum, ancak kullanıcı ana dizininin altında ( ~
* nix'te kısayol ve c:\users\<username>
genellikle Windows için).
Diğer detaylar
Bu --user
seçenek her komut için geçerli değildir. Örneğin pip uninstall
, yüklendikleri her yerde (kullanıcı klasöründe, sanal ortam klasöründe vb.) Paketleri bulur ve kaldırır ve --user
seçenek geçerli değildir.
İle yüklenen şeyler pip install --user
, yalnızca geçerli kullanıcı hesabı tarafından görülecek ve kök erişimi (* nix'te) veya yönetici erişimi (Windows'ta) gerektirmeyecek yerel bir konuma yüklenir.
--user
Seçenek değiştirir tüm pip
görmek onu kabul komutları / kullanıcı üzerinde işlem kullanmak eğer öyleyse, klasör yüklemek pip list --user
o olacak sadece sizinle yüklü paketleri göster pip install --user
.
import site; print site.USER_SITE
yükleme konumu yazdırmak için. Benim için aldım/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
.