Pipenv: Không tìm thấy lệnh


119

Tôi là người mới phát triển Python và đang cố gắng sử dụng pipenv. Tôi đã chạy lệnh pip install pipenv, lệnh này đã chạy thành công:

...
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
...

Tuy nhiên, khi tôi chạy lệnh pipenv installtrong một thư mục dự án rễ tươi Tôi nhận được thông báo sau: -bash: pipenv: command not found. Tôi nghi ngờ rằng tôi có thể cần sửa đổi .bashrc của mình, nhưng tôi không rõ về những gì cần thêm vào tệp hoặc liệu việc sửa đổi có cần thiết hay không.


1
Kiểm tra /usr/local/bin/pipenv- nó có ở đó không? Là /usr/local/bincủa bạn $PATH?
phd

3
Vấn đề tương tự ở đây: pipenv được tạo thành công nhưng không có dấu hiệu của thư mục pipenv trong / usr / local / bin.
aDone 24/09/17

Bạn có đang cài đặt pipenvtrên toàn cầu không?
dethos

Câu trả lời:


126

Điều đó xảy ra bởi vì bạn không cài đặt nó trên toàn cầu (toàn hệ thống). Để nó có sẵn trong bạn, pathbạn cần cài đặt nó bằng cách sử dụng sudo, như sau:

$ sudo pip install pipenv

86
đối với sao chép và dán ngoài đó, lệnh này thường được chạy dưới dạng sudo -H pip install -U pipenv(ví dụ: trên ubuntu), cài đặt pipenvtrong /usr/local/bin. Giải pháp thay thế là một người sử dụng cài đặt, ví dụ $ pip install pipenv, đó là giống như $ pip install --user pipenv, dùng để cài đặt mọi thứ trong $HOME/.local/..., đòi hỏi sự PATHphải được sửa đổi như trong câu trả lời khác, stackoverflow.com/a/47111756/127971
michael

2
Điều này giúp tôi có được mọi thứ với môi trường máy tính để bàn mới.
Ligemer

@michael Bạn có câu trả lời hay nhất trong bình luận. Xấu hổ! Đăng nó dưới dạng câu trả lời người đàn ông
Rahul

@michael đây là điều duy nhất làm việc cho tôi, cảm ơn rất nhiều!
jaycarleton

@michael Cảm ơn câu trả lời. Đã xác nhận là nó đã hoạt động.
siêu âm

128

CÁi này đã sửa nó giúp tôi:

sudo -H pip install -U pipenv

3
Hoạt động hoàn hảo! Tình cờ bạn có biết những lệnh này có nghĩa là gì (-H và -U) không?
Babbz77

12
@ Babbz77 Tùy chọn -H (HOME) cho sudo yêu cầu chính sách bảo mật đặt biến môi trường HOME thành thư mục chính của người dùng đích (root theo mặc định) như được chỉ định bởi cơ sở dữ liệu mật khẩu. Cài đặt -U cho pip nâng cấp tất cả các gói được chỉ định lên phiên bản mới nhất hiện có. Việc xử lý các phụ thuộc phụ thuộc vào chiến lược nâng cấp được sử dụng.
Andrey Vaganov

Cảm ơn bạn rất nhiều, tôi đã cố gắng rất nhiều, nhưng câu trả lời của bạn đã cứu tôi.
vdkotian

1
Đây nên là câu trả lời. Hoạt động hoàn hảo. Tôi đã tìm kiếm một lúc. Cảm ơn
Ivan Gonzalez

62

Nếu bạn đã thực hiện cài đặt người dùng, bạn sẽ cần thêm đúng thư mục vào PATHbiến của mình .

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

Xem hướng dẫn cài đặt của pipenv


Điều này rất hữu ích, vì tôi cần phải chạy pipenv runvà hướng dẫn cài đặt cho tôi biết như vậy.
eksortso

1
Bạn phải kiểm tra python3 -m sitexem liệu dir --user-base có tồn tại hay không!
Claudio Santos

Nên được chấp nhận câu trả lời, cảm ơn bạn!
Maxime Lafarie

20

Tôi đã thử điều này:

python -m pipenv # for python2

python3 -m pipenv # for python3

Hy vọng điều này có thể giúp bạn.


1
cảm ơn, tại sao tôi cần bao gồm python -m mỗi khi tôi chạy pipenv?
suisied

14

Tôi gặp vấn đề tương tự với pipenvtrên Mac OS X 10.13 High Seirra, một máy Mac khác hoạt động tốt. Tôi sử dụng Heroku để triển khai máy chủ Django của mình, một số trong 2.7 và một số trong 3.6. Vì vậy, tôi cần cả 2.7 và 3.6. Khi HomeBrew cài đặt Python, nó giữ pythoncác điểm đến 2.7 gốc và python3trỏ đến 3.6.

Vấn đề có thể do $ pip install pipenv. Tôi đã kiểm tra / usr / local / bin và pipenv không có ở đó. Vì vậy, tôi đã thử gỡ cài đặt hoàn toàn:

$ 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.

Sau đó cài đặt lại và hoạt động ngay:

$ pip3 install pipenv
Collecting pipenv

8

CÁC BẠN OSX, QUÁ ĐÂY !!!

Như @charlax đã trả lời (đối với tôi là câu tốt nhất), bạn có thể sử dụng một lệnh động hơn để đặt PATH, buuut cho người dùng mac, điều này không thể hoạt động , đôi khi đường dẫn USER_BASE của bạn đến từ trang web bị sai, vì vậy bạn cần tìm hiểu vị trí của mình cài đặt python là.

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

bạn sẽ nhận được một liên kết biểu tượng, sau đó bạn cần tìm liên kết biểu tượng của nguồn.

$ 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

( ../../../nghĩa là gốc)

Vì vậy, bạn đã tìm thấy đường dẫn python ( /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6), sau đó bạn chỉ cần đưa vào bạn ~ / .bashrc như sau:

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


1
Đã khắc phục sự cố của tôi. Cheers
Floran Gmehlin

Tôi đã cài đặt python3 thông qua Homebrew. Khi chạy which python3kết quả đầu ra /Cellar/python/3.7.7/bin/python3mà tôi đã gán cho PATH của mình nhưng vẫn `` không tìm thấy pipenv ''. Bất kỳ ý tưởng?
Ozkan Serttas

6

Nơi Python lưu trữ các gói

Trước khi nhảy vào lệnh sẽ cài đặt pipenv, bạn nên hiểu nơi pip cài đặt các gói Python .

Gói trang web toàn cầu là nơi Python cài đặt các gói sẽ có sẵn cho tất cả người dùng và tất cả các ứng dụng Python trên hệ thống. Bạn có thể kiểm tra gói trang web toàn cầu bằng lệnh

python -m site

Ví dụ: trên Linux với Python 3.7, đường dẫn thường là

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

Gói trang người dùng là nơi Python cài đặt các gói chỉ có sẵn cho bạn. Nhưng các gói sẽ vẫn hiển thị với tất cả các dự án Python mà bạn tạo. Bạn có thể nhận được con đường với

python -m site --user-base

Trên Linux với Python 3.7, đường dẫn thường là

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

Sử dụng Python 3.x

Trên hầu hết các hệ điều hành Linux và các Liên minh khác, thường thì Python 2 và Python 3 được cài đặt song song với nhau. Thực thi Python 3 mặc định hầu như luôn luôn python3. pipcó thể có sẵn dưới dạng một trong hai cách sau, tùy thuộc vào bản phân phối Linux của bạn

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

Linux

Tránh sử dụng pipvới sudo! Vâng, đó là cách thuận tiện nhất để cài đặt các gói Python và tệp thực thi có sẵn tại /usr/local/bin/pipenv, nhưng điều đó cũng có nghĩa là gói cụ thể luôn hiển thị cho tất cả người dùng và tất cả các dự án Python mà bạn tạo. Thay vào đó, hãy sử dụng các gói trang web cho mỗi người dùng thay thế bằng--user

pip3 install --user pipenv

pipenv có sẵn tại

~/.local/bin/pipenv

hệ điều hành Mac

Trên macOS, Homebrew là cách được khuyến nghị để cài đặt Python . Bạn có thể dễ dàng nâng cấp Python, cài đặt nhiều phiên bản Python và chuyển đổi giữa các phiên bản bằng Homebrew.

Nếu bạn đang sử dụng Homebrew'ed Python, đã pip install --userbị tắt. Gói trang web toàn cầu được đặt tại

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

và bạn có thể cài đặt các gói Python một cách an toàn tại đây. Python 3.y cũng tìm kiếm các mô-đun trong:

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

các cửa sổ

Vì lý do kế thừa, Python được cài đặt trong C:\Python37. Tệp thực thi Python thường được đặt tên py.exevà bạn có thể chạy pipvới py -m pip.

Các gói trang web toàn cầu được cài đặt trong

C:\Python37\lib\site-packages

Vì bạn không thường chia sẻ các thiết bị Windows của mình nên bạn cũng có thể cài đặt một gói trên toàn cầu

py -m pip install pipenv

pipenv hiện có sẵn tại

C:\Python37\Scripts\pipenv.exe

Tôi không khuyên bạn nên cài đặt các gói Python trong Windows với --user, bởi vì thư mục gói trang web người dùng mặc định nằm trong hồ sơ chuyển vùng Windows của bạn

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

Cấu hình chuyển vùng được sử dụng trong Dịch vụ đầu cuối (Máy tính từ xa, Citrix, v.v.) và khi bạn đăng nhập / tắt trong môi trường công ty. Đăng nhập, đăng xuất và khởi động lại chậm trong Windows có thể do cấu hình chuyển vùng lớn.


5

Việc cài đặt pipenv trên toàn cầu có thể có tác động bất lợi do ghi đè cài đặt pip toàn cầu / do hệ thống quản lý, do đó dẫn đến lỗi nhập khi cố gắng chạy pip.

Bạn có thể cài đặt pipenv ở cấp độ người dùng:

pip install --user pipenv

Điều này sẽ cài đặt pipenv ở cấp người dùng trong /home/username/.local để nó không xung đột với phiên bản toàn cầu của pip. Trong trường hợp của tôi, điều đó vẫn không hoạt động sau khi chạy công tắc '- người dùng', vì vậy tôi chạy lệnh 'sửa những gì tôi đã làm sai' dài hơn một lần để khôi phục môi trường được quản lý hệ thống:

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

^ tìm thấy ở đây: Lỗi sau khi nâng cấp pip: không thể nhập tên 'chính'

và sau đó làm như sau:

mkdir /home/username/.local ... nếu nó chưa tồn tại

export PYTHONUSERBASE=/home/username/.local

Đảm bảo quá trình xuất có hiệu lực (bit tôi một lần trong quá trình này):

echo $PYTHONUSERBASE

Sau đó, tôi chạy pip install --user pipenvvà tất cả đều tốt. Sau đó, tôi có thể chạy pipenv từ CLI và nó không ghi đè lên mô-đun pip toàn cầu / do hệ thống quản lý. Tất nhiên, điều này dành riêng cho người dùng, vì vậy bạn muốn đảm bảo rằng bạn cài đặt pipenv theo cách này trong khi làm việc với tư cách là người dùng bạn muốn sử dụng pipenv.

Người giới thiệu:

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



1

Sau khi cài đặt pipenv ( sudo pip install pipenv), tôi tiếp tục gặp lỗi "Command Not Found" khi cố gắng chạy pipenv shelllệnh.

Cuối cùng tôi đã sửa nó bằng đoạn mã sau:

pip3 install pipenv
pipenv shell

0

Bạn có thể xem xét cài đặt pipenvqua pipsi.

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

Rất tiếc, có một số vấn đề với macOS + python3 tại thời điểm viết bài, xem 1 , 2 . Trong trường hợp của tôi, tôi đã phải thay đổi bashprompt thành#!/Users/einselbst/.local/venvs/pipsi/bin/python


0

Trong một số trường hợp của pipphiên bản cũ :

sudo easy_install pip
sudo pip install pipenv

0

Đối với người dùng window, điều này có thể do cài đặt xung đột với virtualenv. Đối với tôi, nó hoạt động khi tôi gỡ cài đặt virtualenv và pipenv trước, sau đó chỉ cài đặt pipenv.

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

Bây giờ pipenv install xxxđã làm việc cho tôi


0

Trên Mac OS X Catalina, nó dường như đi theo đường dẫn Linux. Sử dụng bất kỳ:

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

Về cơ bản cài đặt pipenv tại đây:

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

Nhưng nó không phải là tệp thực thi và vì vậy không bao giờ được tìm thấy. Điều duy nhất hiệu quả với tôi là

pip install --user pipenv

Điều này dường như dẫn đến một __init__.py tệp trong thư mục trên có nội dung để hiển thị chính xác pipenvlệnh.

và mọi thứ bắt đầu hoạt động, khi tất cả các đề xuất đã đăng và nhận xét khác về câu hỏi này không thành công.

Gói pipenv chắc chắn có vẻ khá cầu kỳ.


đối với người dùng Mac mã này cũng hoạt động, sudo -H python3 -m pip cài đặt pipenv
Jay Dangar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.