Pipenv: Perintah Tidak Ditemukan

119

Saya baru mengenal pengembangan Python dan mencoba menggunakan pipenv. Saya menjalankan perintah pip install pipenv, yang berjalan dengan sukses:

...
Successfully built pipenv pathlib shutilwhich pythonz-bd virtualenv-clone
Installing collected packages: virtualenv, pathlib, shutilwhich, backports.shutil-get-terminal-size, pythonz-bd, virtualenv-clone, pew, first, six, click, pip-tools, certifi, chardet, idna, urllib3, requests, pipenv
...

Namun, ketika saya menjalankan perintah pipenv installdalam direktori proyek akar segar saya menerima pesan berikut: -bash: pipenv: command not found. Saya menduga bahwa saya mungkin perlu memodifikasi .bashrc saya, tetapi saya tidak jelas tentang apa yang harus ditambahkan ke file atau jika modifikasi bahkan diperlukan.

lgants
sumber
1
Periksa /usr/local/bin/pipenv- apakah di sana? Apakah /usr/local/bindi dalam Anda $PATH?
phd
3
Masalah yang sama di sini: pipenv berhasil dibuat tetapi tidak ada tanda folder pipenv di / usr / local / bin.
Dilakukan
Apakah Anda menginstal pipenvsecara global?
dethos

Jawaban:

127

Itu terjadi karena Anda tidak menginstalnya secara global (seluruh sistem). Agar tersedia di Anda, pathAnda perlu menginstalnya menggunakan sudo, seperti ini:

$ sudo pip install pipenv
dethos
sumber
86
untuk salin dan tempel di luar sana, perintah ini biasanya dijalankan sebagai sudo -H pip install -U pipenv(misalnya di ubuntu), menginstal pipenvdi /usr/local/bin. Alternatifnya adalah penginstalan pengguna, misalnya, $ pip install pipenvyang sama dengan $ pip install --user pipenv, yang menginstal sesuatu $HOME/.local/..., memerlukan PATHmodifikasi seperti di jawaban lain, stackoverflow.com/a/47111756/127971
michael
3
Ini membuat saya setiap saat dengan lingkungan desktop baru.
Ligemer
@michael Anda memiliki jawaban terbaik dalam komentar. Malu! Posting sebagai pria jawaban
Rahul
@ michael ini adalah satu-satunya hal yang berhasil untuk saya, terima kasih banyak!
jaycarleton
@ michael Terima kasih atas jawabannya. Dipastikan berhasil.
USG
128

Ini memperbaikinya untuk saya:

sudo -H pip install -U pipenv
tuan ly
sumber
3
Bekerja dengan sempurna! Apakah Anda tahu apa arti perintah ini (-H dan -U)?
Babbz77
12
@ Babbz77 Opsi -H (HOME) untuk sudo meminta agar kebijakan keamanan menyetel variabel lingkungan HOME ke direktori home pengguna target (root secara default) seperti yang ditentukan oleh database kata sandi. -U untuk instalasi pip meningkatkan semua paket yang ditentukan ke versi terbaru yang tersedia. Penanganan ketergantungan tergantung pada strategi peningkatan yang digunakan.
Andrey Vaganov
Terima kasih banyak, saya banyak berjuang, tetapi jawaban Anda menyelamatkan saya.
vdkotian
1
Ini harus menjadi jawabannya. Bekerja dengan sempurna. Saya mencari beberapa saat. Terima kasih
Ivan Gonzalez
63

Jika Anda telah melakukan penginstalan pengguna, Anda harus menambahkan folder yang tepat ke PATHvariabel Anda .

PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"

Lihat petunjuk instalasi pipenv

charlax.dll
sumber
Ini berguna, karena saya harus menjalankannya pipenv run, dan instruksi penginstalan memberi tahu saya demikian.
eksortso
1
Anda harus menguji python3 -m siteuntuk melihat apakah dir --user-base ada!
Claudio Santos
Harus diterima jawaban, terima kasih!
Maxime Lafarie
21

Saya mencoba ini:

python -m pipenv # for python2

python3 -m pipenv # for python3

Semoga ini bisa membantu Anda.

pengguna9563571
sumber
1
terima kasih, kenapa saya harus menyertakan python -m setiap kali saya menjalankan pipenv?
menuntut
14

Saya memiliki masalah yang sama dengan pipenvdi Mac OS X 10.13 High Seirra, Mac lain berfungsi dengan baik. Saya menggunakan Heroku untuk menyebarkan server Django saya, beberapa di 2.7 dan beberapa di 3.6. Jadi, saya membutuhkan 2.7 dan 3.6. Ketika HomeBrew menginstal Python, itu membuat pythonpoin ke 2.7 asli, dan python3menunjuk ke 3.6.

Masalahnya mungkin karena $ pip install pipenv. Saya memeriksa / usr / local / bin dan pipenv tidak ada. Jadi, saya mencoba uninstall penuh:

$ pip uninstall pipenv

Cannot uninstall requirement pipenv, not installed
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

$ pip3 uninstall pipenv
Skipping pipenv as it is not installed.

Kemudian instal ulang dan berfungsi sekarang:

$ pip3 install pipenv
Collecting pipenv
John Pang
sumber
8

KAMU OSX, DI SINI !!!

Seperti yang dijawab oleh @charlax (bagi saya yang terbaik), Anda dapat menggunakan perintah yang lebih dinamis untuk menyetel PATH, tetapi untuk pengguna mac ini tidak dapat berfungsi , terkadang jalur USER_BASE Anda yang didapat dari situs salah, jadi Anda perlu mencari tahu di mana instalasi python adalah.

$ which python3
/usr/local/bin/python3.6

Anda akan mendapatkan symlink, lalu Anda perlu mencari symlink sumbernya.

$ ls -la /usr/local/bin/python3.6
  lrwxr-xr-x  1 root  wheel  71 Mar 14 17:56 /usr/local/bin/python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

(ini ../../../berarti root)

Jadi Anda menemukan path python ( /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6), maka Anda hanya perlu memasukkan ~ / .bashrc sebagai berikut:

export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin"

Claudio Santos
sumber
1
Memperbaiki masalah saya. Cheers
Floran Gmehlin
Saya menginstal python3 melalui Homebrew. Ketika menjalankan which python3output /Cellar/python/3.7.7/bin/python3yang saya tetapkan ke PATH saya tetapi masih `` pipenv` tidak ditemukan`. Ada ide?
Ozkan Serttas
6

Tempat menyimpan paket Python

Sebelum beralih ke perintah yang akan menginstal pipenv, perlu dipahami di mana pip menginstal paket Python .

Paket situs global adalah tempat Python menginstal paket yang akan tersedia untuk semua pengguna dan semua aplikasi Python di sistem. Anda dapat memeriksa paket situs global dengan perintah

python -m site

Misalnya, di Linux dengan Python 3.7 biasanya jalurnya adalah

/usr/lib/python3.7/dist-packages/setuptools

Paket situs pengguna adalah tempat paket pemasangan Python hanya tersedia untuk Anda. Tetapi paket tersebut masih dapat dilihat oleh semua proyek Python yang Anda buat. Anda bisa mendapatkan jalan dengan

python -m site --user-base

Di Linux dengan Python 3.7 jalurnya biasanya

~/.local/lib/python3.7/site-packages

Menggunakan Python 3.x

Di sebagian besar Linux dan Unix lainnya, biasanya Python 2 dan Python 3 diinstal secara berdampingan. Eksekusi Python 3 default hampir selalu python3. pipmungkin tersedia sebagai salah satu dari berikut ini, tergantung pada distribusi Linux Anda

pip3
python3-pip
python36-pip
python3.6-pip

Linux

Hindari menggunakan pipdengan sudo! Ya, ini adalah cara paling mudah untuk menginstal paket Python dan dapat dieksekusi tersedia di /usr/local/bin/pipenv, tetapi itu juga berarti bahwa paket tertentu selalu terlihat untuk semua pengguna, dan semua proyek Python yang Anda buat. Sebagai gantinya, gunakan paket situs per pengguna sebagai gantinya dengan--user

pip3 install --user pipenv

pipenv tersedia di

~/.local/bin/pipenv

macOS

Di macOS, Homebrew adalah cara yang disarankan untuk menginstal Python . Anda dapat dengan mudah memutakhirkan Python, menginstal beberapa versi Python, dan beralih antar versi menggunakan Homebrew.

Jika Anda menggunakan Homebrew'ed Python, pip install --userdinonaktifkan. Paket situs global terletak di

/usr/local/lib/python3.y/site-packages

dan Anda dapat menginstal paket Python dengan aman di sini. Python 3.y juga mencari modul di:

 /Library/Python/3.y/site-packages
 ~/Library/Python/3.y/lib/python/site-packages

Windows

Untuk alasan lama, Python diinstal di C:\Python37. Eksekusi Python biasanya dinamai py.exe, dan Anda dapat menjalankannya pipdengan py -m pip.

Paket situs global diinstal di

C:\Python37\lib\site-packages

Karena Anda biasanya tidak berbagi perangkat Windows, Anda juga boleh menginstal paket secara global

py -m pip install pipenv

pipenv sekarang tersedia di

C:\Python37\Scripts\pipenv.exe

Saya tidak merekomendasikan menginstal paket Python di Windows dengan --user, karena direktori paket situs pengguna default ada di profil roaming Windows Anda

C:\Users\user\AppData\Roaming\Python\Python37\site-packages 

Profil roaming digunakan di Terminal Services (Remote Desktop, Citrix, dll) dan saat Anda log on / off di lingkungan perusahaan. Login lambat, logoff, dan reboot di Windows dapat disebabkan oleh profil roaming yang besar.

Hanxue
sumber
5

Menginstal pipenv secara global dapat berdampak buruk dengan menimpa instalasi pip yang dikelola global / sistem, sehingga mengakibatkan kesalahan impor saat mencoba menjalankan pip.

Anda dapat menginstal pipenv di tingkat pengguna:

pip install --user pipenv

Ini harus menginstal pipenv pada tingkat pengguna di /home/username/.local sehingga tidak konflik dengan pip versi global. Dalam kasus saya, itu masih tidak berfungsi setelah menjalankan sakelar '--user', jadi saya menjalankan perintah 'perbaiki apa yang saya buat kacau' sekali untuk memulihkan lingkungan yang dikelola sistem:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

^ ditemukan di sini: Kesalahan setelah meningkatkan pip: tidak dapat mengimpor nama 'main'

lalu lakukan hal berikut:

mkdir /home/username/.local ... jika belum ada

export PYTHONUSERBASE=/home/username/.local

Pastikan ekspor berlaku (gigit saya sekali selama proses ini):

echo $PYTHONUSERBASE

Kemudian, saya menjalankannya pip install --user pipenvdan semuanya baik-baik saja. Saya kemudian dapat menjalankan pipenv dari CLI dan itu tidak menimpa modul pip yang dikelola global / sistem. Tentu saja, ini khusus untuk pengguna sehingga Anda ingin memastikan Anda menginstal pipenv dengan cara ini saat bekerja sebagai pengguna yang ingin Anda gunakan pipenv.

Referensi:

https://pipenv.readthedocs.io/en/latest/diagnose/#no-module-named-module-name https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation-of-pipenv https://pip.pypa.io/en/stable/user_guide/#user-installs

NetRay
sumber
1

Ini diperbaiki bagi saya untuk:

sudo -H pip install -U pipenv
Asliddin Muzaffarov
sumber
1

Setelah menginstal pipenv ( sudo pip install pipenv), saya terus mendapatkan error "Command Not Found" saat mencoba menjalankan pipenv shellperintah.

Saya akhirnya memperbaikinya dengan kode berikut:

pip3 install pipenv
pipenv shell
podenborg.dll
sumber
0

Anda dapat mempertimbangkan untuk menginstal pipenvmelalui pipsi.

curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get -pipsi.py | python3
pipsi install pew
pipsi install pipenv

Sayangnya, ada beberapa masalah dengan macOS + python3 pada saat penulisan, lihat 1 , 2 . Dalam kasus saya, saya harus mengubah bashprompt menjadi#!/Users/einselbst/.local/venvs/pipsi/bin/python

einSelbst
sumber
0

Dalam beberapa kasus pipversi lama :

sudo easy_install pip
sudo pip install pipenv
prosti
sumber
0

Untuk pengguna jendela ini mungkin karena instalasi yang bertentangan dengan virtualenv. Bagi saya itu berhasil ketika saya menghapus virtualenv dan pipenv terlebih dahulu, dan kemudian hanya menginstal pipenv.

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

Sekarang pipenv install xxxbekerja untuk saya

akhila selamat
sumber
0

Di Mac OS X Catalina, tampaknya mengikuti jalur Linux. Menggunakan salah satu dari:

pip install pipenv
pip3 install pipenv
sudo pip install pipenv
sudo pip3 install pipenv

Pada dasarnya menginstal pipenv di sini:

/Users/mike/Library/Python/3.7/lib/python/site-packages/pipenv

Tapi itu bukan yang dapat dieksekusi dan karenanya tidak pernah ditemukan. Satu-satunya hal yang berhasil bagi saya adalah

pip install --user pipenv

Tampaknya ini menghasilkan __init__.pyfile di direktori di atas yang memiliki konten untuk mengekspos pipenvperintah dengan benar .

dan semuanya mulai bekerja, ketika semua saran yang diposting dan dikomentari tentang pertanyaan ini gagal.

Paket pipenv tampaknya cukup pilih-pilih.

Michael Coxon
sumber
untuk pengguna Mac kode ini juga berfungsi, sudo -H python3 -m pip install pipenv
Jay Dangar