Bagaimana cara menginstal paket pip secara global dan bukan secara lokal?

99

Saya mencoba menginstal paket flake8 menggunakan pip3 dan sepertinya paket tersebut menolak untuk diinstal karena sudah diinstal di satu lokasi lokal.

Bagaimana saya bisa memaksanya untuk menginstal secara global (level sistem)?

pip3 install flake8
Requirement already satisfied (use --upgrade to upgrade): flake8 in ./.local/lib/python3.4/site-packages

Harap dicatat bahwa saya lebih suka solusi umum (yang seharusnya berfungsi pada Debian, OS X bahkan mungkin Windows), yang harus digunakan pada platform apa pun jadi saya tidak ingin menentukan tujuan sendiri.

Untuk beberapa alasan aneh itu berperilaku seperti saya sudah menentukan --useryang dalam kasus saya tidak saya lakukan.

Satu-satunya cara saya dapat menginstal paket secara global adalah dengan menghapusnya terlebih dahulu dan menginstalnya lagi setelah ini. Tampaknya pip (8.1.1) menolak untuk menginstal paket secara global jika ada secara lokal.

Penafian: Tidak ada lingkungan virtual yang digunakan atau dirusak selama percobaan.

sorin
sumber
3
Sudahkah Anda mencoba dari pengguna root atau sudo?
matino
Apakah Anda mencoba pip install flake8 --upgrade?
Mauro Baraldi
Dalam kasus masalah serupa terkait dengan penggunaan lingkungan virtual (venv) gunakan --system-site-packagesopsi untuk mewarisi paket yang diinstal secara global ke venv Anda. Lihat stackoverflow.com/a/61326709/4445175
Wlad

Jawaban:

139

Mengapa Anda tidak mencoba sudodengan Hbendera? Ini seharusnya berhasil.

sudo -H pip install flake8

Seorang reguler sudo pip install flake8akan mencoba menggunakan direktori home Anda sendiri. The -Hmenginstruksikan untuk menggunakan direktori home sistem. Info lebih lanjut di https://stackoverflow.com/a/43623102/

nikhilweee
sumber
98
Hseperti di Hlobal?
Matt
63
-Hseperti di hey sudo, berhenti menggunakan direktori home saya. gunakan Hdirektori ome Anda sendiri sebagai gantinya stackoverflow.com/a/43623102
nikhilweee
6
Ini tidak benar-benar menginstalnya secara global, tetapi tampaknya hanya menyimpannya di direktori home 'root' pengguna
parsecpython
@nikhilweee Saya tidak mengerti bagaimana ini berbeda dari pip3 install ipythonketika virtualenv dinonaktifkan, mereka tampaknya menginstal ke site-packagesdirektori yang sama .
iamfrancisyo
@parsecpython bagi saya itu melakukan trik dan menginstal paket ke /usr/local/lib/python3.8/dist-packages yang saya maksudkan
yota
8

Mungkin --force-reinstallakan berhasil, jika tidak --ignore-installedharus melakukan trik.

Manuel
sumber
5

Apakah Anda menggunakan virtualenv? Jika ya, nonaktifkan virtualenv. Jika Anda tidak menggunakan, itu sudah diinstal secara luas (level sistem). Coba perbarui paket.

pip install flake8 --upgrade
Mauro Baraldi
sumber
2
Tidak sepenuhnya benar.
GMaster
2

Saya sebenarnya tidak melihat masalah Anda. Secara global adalah semua paket yang ada di folder paket situs jalur python3 Anda.

Jika Anda ingin menggunakannya secara lokal maka Anda harus mengkonfigurasi virtualenv dan menginstal ulang paket dengan lingkungan virtual yang diaktifkan.

LIT
sumber
Saat membuat venv, Anda dapat menggunakan --system-site-packages .venv/devuntuk mewarisi paket global sehingga Anda tidak perlu menginstalnya kembali di setiap venv. Ini masuk akal untuk paket yang mungkin ingin digunakan dalam proyek apa pun, misalnya black, flake8, pytest. Contoh:python -m venv --system-site-packages .venv/dev
Wlad
-1

Di mana instalasi pip terjadi dengan python?

Saya akan memberikan solusi windows yang saya hadapi dan butuh beberapa saat untuk menyelesaikannya.

Pertama-tama, di windows (saya akan menggunakan Windows sebagai OS di sini), jika Anda melakukannya pip install <package_name>, itu akan secara default diinstal secara global ( jika Anda belum mengaktifkan lingkungan virtual ). Setelah Anda mengaktifkan lingkungan virtual dan Anda berada di dalamnya, semua instalasi pip akan berada di dalam lingkungan virtual tersebut.


pip adalah menginstal mengatakan paket tapi tidak saya tidak dapat menggunakan mereka?

Untuk pip ini mungkin memberi Anda peringatan bahwa pip yang dapat dieksekusi seperti pip3.exe, pip.exetidak ada di variabel jalur Anda. Untuk ini, Anda dapat menambahkan jalur ini (biasanya - C:\Users\<your_username>\AppData\Roaming\Programs\Python\) ke variabel lingkungan Anda . Setelah ini restart Anda cmd, dan sekarang coba gunakan paket python yang Anda instal. Ini harus bekerja sekarang.

naluri
sumber