Có một --user
tùy chọn cho pip có thể cài đặt gói Python cho mỗi người dùng:
pip install --user [python-package-name]
Tôi đã sử dụng tùy chọn này để cài đặt gói trên máy chủ mà tôi không có quyền truy cập root. Những gì tôi cần bây giờ là gỡ cài đặt gói đã cài đặt trên người dùng hiện tại. Tôi đã cố gắng thực hiện lệnh này:
pip uninstall --user [python-package-name]
Nhưng tôi đã nhận:
no such option: --user
Làm cách nào tôi có thể gỡ cài đặt gói mà tôi đã cài đặt pip install --user
, ngoài việc tìm và xóa gói theo cách thủ công?
Tôi đã tìm thấy bài viết này
Pip không thể gỡ cài đặt từ thư mục gói trang web cho mỗi người dùng
trong đó mô tả rằng gỡ cài đặt các gói từ thư mục người dùng không được hỗ trợ. Theo bài báo nếu nó được thực hiện đúng thì với
pip uninstall [package-name]
gói đã được cài đặt cũng sẽ được tìm kiếm trong thư mục người dùng. Nhưng một vấn đề vẫn còn cho tôi. Điều gì xảy ra nếu cùng một gói được cài đặt cho cả hệ thống và mỗi người dùng? Điều gì nếu một ai đó cần phải nhắm mục tiêu một thư mục người dùng cụ thể?
- python
- python-3.x
- pip
142 hữu ích 5 bình luận 279k xem chia sẻ
answer
130
Đã thử nghiệm điều này bằng Python 3.5 và pip 7.1.2 trên Linux, tình huống có vẻ như sau:
pip install --user somepackage
cài đặt$HOME/.local
và gỡ cài đặt nó hoạt động bằng cách sử dụngpip uninstall somepackage
.Điều này đúng hay không
somepackage
cũng được cài đặt toàn hệ thống cùng một lúc.Nếu gói được cài đặt ở cả hai nơi, chỉ có gói địa phương sẽ được gỡ cài đặt. Để gỡ cài đặt gói toàn hệ thống bằng cách sử dụng
pip
, trước tiên hãy gỡ cài đặt cục bộ, sau đó chạy lại lệnh gỡ cài đặt đó, với cácroot
đặc quyền.Ngoài thư mục cài đặt người dùng được xác định trước,
pip install --target somedir somepackage
sẽ cài đặt gói vàosomedir
. Không có cách nào để gỡ cài đặt một gói từ một nơi như vậy bằng cách sử dụngpip
. [Nhưng có một yêu cầu kéo không được trộn lẫn cũ trên Github thực hiệnpip uninstall --target
.]Vì các địa điểm duy nhất
pip
sẽ được gỡ cài đặt từ toàn hệ thống và được xác định trước là người dùng cục bộ, nên bạn cần chạypip uninstall
với tư cách là người dùng tương ứng để gỡ cài đặt từ thư mục cài đặt cục bộ của người dùng.
130 hữu ích 0 bình luận chia sẻ
answer
19
ví dụ để gỡ cài đặt gói 'oauth2client' trên MacOS:
pip uninstall oauth2client
19 hữu ích 0 bình luận chia sẻ
answer
2
Câu trả lời là chưa thể . Bạn phải loại bỏ nó bằng tay.
2 hữu ích 2 bình luận chia sẻ
answer
2
Như @ thomas-lotze đã đề cập, hiện tại công cụ pip không làm điều đó vì không có tùy chọn --user tương ứng. Nhưng những gì tôi tìm thấy là tôi có thể kiểm tra ~ / .local / bin và tìm pip #. # Cụ thể trông giống như nó tương ứng với tùy chọn --user.
Trong trường hợp của tôi:
antho@noctil: ~/.l/bin$ pwd
/home/antho/.local/bin
antho@noctil: ~/.l/bin$ ls pip*
pip pip2 pip2.7 pip3 pip3.5
Và sau đó chỉ cần gỡ cài đặt với phiên bản pip cụ thể.
2 hữu ích 1 bình luận chia sẻ
answer
0
Tôi đang chạy Anaconda phiên bản 4.3.22 và môi trường python3.6.1, và đã gặp sự cố này. Đây là lịch sử và cách khắc phục:
pip uninstall opencv-python # -- the original step. failed.
ImportError: DLL load failed: The specified module could not be found.
Tôi đã làm điều này vào môi trường python3.6 của tôi và gặp lỗi này.
python -m pip install opencv-python # same package as above.
conda install -c conda-forge opencv # separate install parallel to opencv
pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.
Tiếp theo, tôi đã thử tải xuống python3.6 và đặt python3.dll vào thư mục và trong các thư mục khác nhau. không có gì thay đổi.
cuối cùng, điều này đã sửa nó:
pip uninstall opencv-python
[phiên bản conda-forge khác vẫn được cài đặt] Phiên bản này chỉ còn lại phiên bản conda và hoạt động trong 3.6.
>>>import cv2
>>>
đang làm việc!
0 hữu ích 0 bình luận chia sẻ
answer
0
Bạn có thể gỡ cài đặt tất cả các gói cùng một lúc.
1. First, install pip-purge.
pip install pip-purge
2. Then, Run
pip-purge
Đảm bảo chỉ chạy trong virtualenv
0 hữu ích 0 bình luận chia sẻ