Menggunakan Pip untuk menginstal paket ke Lingkungan Anaconda

178

conda 4.2.13 MacOSX 10.12.1

Saya mencoba menginstal paket dari pipke lingkungan baru (virtual) yang dibuat menggunakan anaconda. Dalam dokumen Anaconda dikatakan bahwa ini baik-baik saja. Ini dilakukan dengan cara yang sama seperti untuk virtualenv.

Aktifkan lingkungan tempat Anda ingin meletakkan program, lalu instal program ...

Saya membuat lingkungan kosong di Ananconda seperti ini:

conda create -n shrink_venv

Aktifkan:

source activate shrink_venv

Saya kemudian dapat melihat di terminal bahwa saya bekerja di env saya (shrink_venv). Masalah muncul, ketika saya mencoba menginstal paket menggunakan pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

Jadi saya bisa melihatnya berpikir persyaratan dipenuhi dari paket seluruh sistem. Jadi sepertinya lingkungan tidak berfungsi dengan benar, pasti tidak seperti yang dikatakan di dokumen. Apakah saya melakukan sesuatu yang salah di sini?

Hanya sebuah catatan, saya tahu Anda dapat menggunakan conda installuntuk paket, tetapi saya memiliki masalah dengan Bantal dari anaconda, jadi saya ingin mendapatkannya pip, dan karena dokumen mengatakan itu baik-baik saja.

Output dari which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** PEMBARUAN ** Saya melihat ini adalah masalah yang cukup umum. Apa yang saya temukan adalah bahwa conda env tidak cocok dengan PYTHONPATH. Sistem tampaknya selalu mencari di lokasi PYTHONPATH bahkan ketika Anda menggunakan lingkungan konda. Sekarang, saya selalu menjalankan unset PYTHONPATHketika menggunakan lingkungan conda, dan itu bekerja jauh lebih baik. Saya menggunakan mac.

jeffery_the_wind
sumber
9
Apakah Anda mencoba conda install pip?
languitar
4
dapatkah Anda menambahkan output which -a pipke pertanyaan Anda?
cel
1
Apakah Anda memiliki PYTHONPATHset variabel lingkungan?
darthbith
1
punya masalah serupa. Secara eksplisit menggunakan pip yang merupakan bagian dari Anaconda sepertinya bekerja untuk saya.
Arsene Lupin
1
apakah benar-benar aman untuk menginstal sesuatu menggunakan pip dan conda? Saya pikir Anda bisa mendapatkan masalah, seperti tidak mengetahui versi mana yang harus diperbaiki ...
Charlie Parker

Jawaban:

203

Untuk orang lain yang mengalami situasi ini, saya menemukan ini menjadi solusi yang paling mudah:

  1. Jalankan conda create -n venv_namedan source activate venv_name, di mana venv_namenama lingkungan virtual Anda.

  2. Lari conda install pip. Ini akan menginstal pip ke direktori venv Anda.

  3. Temukan direktori anaconda Anda, dan temukan folder venv yang sebenarnya. Itu harus di suatu tempat seperti /anaconda/envs/venv_name/.

  4. Instal paket baru dengan melakukan /anaconda/envs/venv_name/bin/pip install package_name.

Ini sekarang seharusnya berhasil menginstal paket menggunakan pip lingkungan virtual itu!

Kincir angin
sumber
2
Apakah jalur untuk binfolder berubah? Saya tidak lagi melihatnya di venv_namefolder?
Jack
Baru saja mencoba membuat venv baru, sepertinya binmasih di tempat yang sama.
Windmill
2
Tidak memiliki folder 'bin' sehingga langkah-langkah di atas membantu. Satu hal yang akan saya tambahkan adalah menjalankan 'pip mana' membantu menentukan 'pip' mana yang benar-benar menginstal paket dan 'pip diam' memberikan daftar yang diinstal pada paket lingkungan
Mykola
2
Saya memiliki situasi di mana walaupun sumber saya diaktifkan, instalasi saya tidak terjadi di lingkungan. Mereka diinstal di lokasi python default.
Saisumanth Gopisetty
4
Jawaban ini sebagian besar: Run pipdari env conda Anda (apakah itu lingkungan atau tidak), dan menginstal paket yang Anda inginkan menggunakan pipdieksekusi dalam folder conda (kasus saya: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez
80

Yang harus Anda lakukan adalah membuka Anaconda Prompt dan mengetik

pip install package-name

Secara otomatis akan menginstal ke lingkungan anaconda tanpa harus menggunakan

conda install package-name

Karena beberapa paket conda mungkin kurang mendukung lembur, maka diperlukan untuk menginstal menggunakan pip dan ini adalah salah satu cara untuk melakukannya

Jika Anda telah menginstal pip di anaconda Anda dapat menjalankan yang berikut ini di jupyter notebook atau di python shell Anda yang terhubung ke anaconda

pip.main(['install', 'package-name'])

Periksa versi pip Anda dengan pip.__version__. Jika ini versi 10.x.xatau lebih tinggi, instal paket python Anda dengan baris kode ini

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

Di notebook jupyter Anda, Anda dapat menginstal paket python melalui pip dalam sel dengan cara ini;

!pip install package-name

atau Anda bisa menggunakan versi python Anda yang terkait dengan anaconda

!python3.6 -m pip install package-name
sambeth
sumber
6
bagaimana Anda "membuka Anaconda prompt"
Thomas Browne
3
Di windows Anda harus mencari 'anaconda prompt' menggunakan ikon pencarian atau input yang ditemukan di task bar dan buka
sambeth
@sambeth di mac?
Parthapratim Neog
1
Saya pikir kuncinya adalah menjalankan pip anaconda Anda, yang berada di bawah lingkungan global atau spesifik anaconda Anda.
matanster
2
Jawaban ini salah. Inti dari pertanyaan adalah bahwa terkadang tidak diinstal ke lingkungan. Ini menginstal secara global. Untuk mencegahnya, Anda harus terlebih dahulu menjalankan conda install pipdi dalam lingkungan untuk memastikan Anda menggunakan versi pip lokal.
Peastman
33

Saya memecahkan masalah ini dengan cara berikut:

Jika Anda memiliki pip non-conda sebagai pip default Anda, tetapi conda python adalah python default Anda (seperti di bawah ini)

>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python

Maka alih-alih hanya memanggil pip install <package>, Anda dapat menggunakan flag modul -mdengan python sehingga ia menggunakan anaconda python untuk instalasi

python -m pip install <package>

Ini menginstal paket ke direktori perpustakaan anaconda daripada ke direktori perpustakaan yang terkait dengan (non-anaconda) pip

alex_danielssen
sumber
3
Ini seharusnya jawabannya. Berfungsi sempurna di Windows.
Geordie
9

Jika Anda tidak menambahkan pip saat membuat lingkungan conda

conda create -n env_name pip

dan juga tidak menginstal pip di dalam lingkungan

source activate env_name
conda install pip

maka satu-satunya pip yang Anda dapatkan adalah sistem pip, yang akan menginstal paket secara global.

Bus seperti yang Anda lihat dalam masalah ini , bahkan jika Anda melakukan salah satu dari prosedur yang disebutkan di atas, perilaku pip di dalam lingkungan conda masih agak tidak terdefinisi.

Untuk memastikan menggunakan pip yang terinstal di dalam lingkungan conda tanpa harus mengetik panjang /home/username/anaconda/envs/env_name/bin/pip, saya menulis fungsi shell:

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

Semoga ini bisa membantu Anda.

Allen Ye
sumber
8

Inilah yang bekerja untuk saya (Lihat tautan gambar)

  1. Buka Anaconda
  2. Pilih Lingkungan di panel sebelah kiri di bawah rumah
  3. Tepat di sebelah kanan tempat Anda memilih dan di bawah bilah "lingkungan pencarian", Anda akan melihat basis (root). Klik itu
  4. Segitiga menunjuk kanan akan muncul, klik di atasnya pilih "terminal terbuka"
  5. Gunakan perintah instalasi pip biasa di sini. Tidak perlu menunjuk ke lingkungan / jalur

Untuk referensi di masa mendatang, Anda dapat menemukan folder yang diunduh paket Anda jika Anda memiliki persyaratan yang sudah dipenuhi. Anda dapat melihatnya jika Anda menggulir ke atas di terminal. Seharusnya membaca sesuatu seperti: persyaratan sudah puas dan kemudian jalan

[ pip instal anaconda]

modatamoproblems
sumber
3

Bagi mereka yang ingin menginstal sejumlah kecil paket dalam kondisi dengan pip lalu menggunakan,

sudo $(which pip) install <instert_package_name>

bekerja untukku.

Penjelasan

Sepertinya, bagi saya, itu which pipsangat dapat diandalkan untuk menemukan jalur pipa conda env ke tempat Anda berada. Namun, ketika menggunakan sudo, ini tampaknya mengarahkan jalur atau memecah ini.

Menggunakan $(which pip)mengeksekusi ini secara independen dari sudoatau salah satu dari perintah dan mirip dengan berjalan /home/<username>/(mini)conda(3)/envs/<env_name>/pipdi Linux. Ini karena $()dijalankan secara terpisah dan output teks ditambahkan ke perintah luar.

Tabel Bobby Kecil
sumber
3

Semua jawaban di atas sebagian besar didasarkan pada penggunaan virtualenv. Saya baru saja menginstal anaconda3 dan tidak memiliki virtualenv yang diinstal di dalamnya. Jadi, saya telah menemukan alternatif yang lebih baik tanpa bertanya-tanya tentang cara membuat virtualenv.

Jika Anda memiliki banyak versi pip dan python yang diinstal di linux, maka pertama jalankan perintah di bawah ini untuk mendaftar semua jalur pipa yang diinstal

dimana pip

Anda akan mendapatkan sesuatu seperti ini sebagai output.

pip: / usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

Salin jalur pip yang ingin Anda gunakan untuk menginstal paket Anda dan tempel setelah sudo mengganti /home/prabhakar/anaconda3/bin/pipperintah di bawah ini.

sudo /home/prabhakar/anaconda3/bin/pipinstal<package-name>

Ini bekerja cukup baik untuk saya. Jika Anda memiliki masalah dalam menginstal, silakan komentar.

Prabhakar Prasad
sumber
3

jika Anda menggunakan OS windows buka Anaconda Prompt dan ketikactivate yourenvname

Dan jika Anda menggunakan mac atau Linux OS, buka Terminal dan ketiksource activate yourenvname

yourenvname di sini adalah lingkungan yang Anda inginkan di mana Anda ingin menginstal paket pip

setelah mengetik perintah di atas, Anda harus melihat bahwa nama lingkungan Anda diubah dari baseke lingkungan yang diketik yourenvnamedalam output konsol (yang berarti Anda sekarang dalam konteks lingkungan yang Anda inginkan)

Maka semua yang perlu Anda lakukan adalah pip installperintah normal mispip install yourpackage

Dengan melakukannya, paket pip akan diinstal di lingkungan Conda Anda

Code_Worm
sumber
3

python -m pip install Pillow

Akan menggunakan pip Python saat ini diaktifkan dengan

source activate shrink_venv

intsco
sumber
3

Tergantung pada bagaimana Anda mengkonfigurasi variabel lingkungan PATH Anda. Ketika shell Anda menyelesaikan panggilan ke pip, manakah bin pertama yang akan ditemukannya?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

Pastikan folder bin dari instalasi anaconda Anda sebelum / usr / lib (tergantung bagaimana Anda menginstal pip). Jadi sebuah contoh:

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

Kita bisa melihat djangorestframework dipasang di lingkungan pengujian saya tetapi jika saya memeriksa basis saya:

(base) borja@xxxx:~$ conda list | grep django

Ini kosong.

Secara pribadi saya suka menangani semua konfigurasi PATH saya menggunakan .pam_environment , berikut sebuah contoh:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

Satu commet ekstra. Cara Anda menginstal pip dapat menimbulkan masalah:

  • Anda harus menggunakan: conda install pip -> paket baru yang diinstal dengan pip akan ditambahkan ke daftar conda.

  • Anda TIDAK HARUS menggunakan: sudo apt install python3-pip -> paket baru tidak akan ditambahkan ke daftar conda (jadi tidak dikelola oleh conda) tetapi Anda masih dapat menggunakannya (kemungkinan konflik).

BorjaEst
sumber
Satu commet ekstra. Cara Anda menginstal pip dapat menimbulkan masalah: - Anda harus menggunakan: conda install pip -> paket baru yang diinstal dengan pip akan ditambahkan ke daftar conda. - Anda TIDAK HARUS menggunakan: sudo apt install python3-pip -> paket baru tidak akan ditambahkan ke daftar conda (jadi tidak dikelola) tetapi Anda masih dapat menggunakannya (kemungkinan konflik).
BorjaEst
hai semuanya :) Bagaimana saya bisa menghapus folder bin seperti /usr/libkalau-kalau itu sebelum folder binaconda saya ketika menjalankan whereis pip?
Lenn
Cobalah sudo apt remove python3-pipuntuk menghapus pip dari distribusi linux Anda dan kemudian di lingkungan conda Anda gunakan: conda install -c anaconda pip.
BorjaEst
2

Saya menghadapi masalah dalam menginstal paket non-conda pada anaconda, saya mengikuti jawaban yang paling disukai di sini dan itu tidak berjalan dengan baik (mungkin karena anaconda saya ada di direktori F dan env dibuat di C dan folder bin tidak dibuat, Saya tidak tahu tetapi tidak berhasil).

Menurut anaconda pip sudah diinstal (yang ditemukan menggunakan perintah " conda list" pada anaconda prompt), tetapi paket pip tidak diinstal jadi di sini adalah apa yang saya lakukan, saya menginstal pip lagi dan kemudian pip menginstal paket.

conda install pip
pip install see

see adalah paket non-konda.

Abhijeet sinha
sumber
2

Yah saya mencoba semua metode di atas. Tidak ada yang berhasil untuk saya. Berikut ini bekerja untuk saya:

  1. Aktifkan lingkungan Anda
  2. Unduh paket .whl secara manual dari https://pypi.org/simple/ /
  3. Arahkan ke folder tempat Anda mengunduh .whl dari baris perintah dengan lingkungan Anda diaktifkan
  4. melakukan: pip instal package_name_wh whatever.whl
MGLondon
sumber
1

Jika Anda HANYA ingin memiliki instalasi conda. Hapus saja semua jalur python lain dari variabel PATH Anda.

Hanya menyisakan:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

Ini memungkinkan Anda untuk hanya menggunakan pip install *dan itu akan menginstal langsung ke instalasi conda Anda.

moto
sumber
-1

Hanya activate shrink_venvakan melakukannya juga. Saya mencoba membuat lingkungan baru dan instalasi konda saya tidak memungkinkan saya untuk menggunakan sumber di awal.

Elisavet Fakou
sumber
Anda tidak perlu sourcedi awal jika Anda menggunakan Windows
KWx