วิธีที่ง่ายที่สุดในการลบแพ็คเกจทั้งหมดที่ติดตั้งโดย pip คืออะไร?


614

ฉันกำลังพยายามแก้ไข virtualenv ตัวใดตัวหนึ่งของฉัน - ฉันต้องการรีเซ็ตไลบรารีที่ติดตั้งทั้งหมดกลับไปเป็นแบบที่ตรงกับการผลิต

มีวิธีที่ง่ายและรวดเร็วในการทำเช่นนี้กับ pip หรือไม่?


10
@patelshahrukh การถอนการติดตั้ง python ไม่ได้ลบแพ็คเกจ pip โปรดหลีกเลี่ยงการทำว่าเพราะมันทั้งใหญ่มีแนวโน้มที่จะไม่ทำงานในแบบที่คุณคิดว่ามันจะและขึ้นอยู่กับว่าคุณติดตั้งหลามอีกครั้งสามารถออกจากเครื่องของคุณอยู่ในสถานะที่ไม่เสถียรที่ทำงานมากขึ้นที่จะแก้ไข
blueberryfields

สิ่งนี้อาจเป็นประโยชน์สำหรับแพ็คเกจที่ติดตั้งในโหมดการพัฒนาหรือโหมดที่แก้ไขได้: stackoverflow.com/questions/17346619/…
Charlie Parker

คำตอบ:


923

ฉันพบข้อมูลโค้ดนี้เป็นโซลูชันทางเลือก เป็นการลบไลบรารีที่สง่างามกว่าการสร้าง virtualenv ใหม่:

pip freeze | xargs pip uninstall -y

ในกรณีที่คุณมีแพ็คเกจที่ติดตั้งผ่าน VCS คุณจะต้องยกเว้นบรรทัดเหล่านั้นและลบแพ็คเกจด้วยตนเอง (ยกระดับจากความคิดเห็นด้านล่าง):

pip freeze | grep -v "^-e" | xargs pip uninstall -y

4
ฉันพบว่านี่เป็นทางออกที่ดีหมดจดเพราะมันไม่ได้ลบสภาพแวดล้อมเสมือนทั้งหมด - ฉันอาจทำการเปลี่ยนแปลงเช่นpostactivateซึ่งจะยังคงอยู่
niceguydave

5
หลังจากทำงานนี้ฉันก็รู้ว่ามันลบsetuptoolsแพ็คเกจ ฉันแก้ไขปัญหาตามคำแนะนำที่นี่: stackoverflow.com/questions/7446187/…
Dan

1
@ gerty3000 ใช่นี่จะ (ตามคำถามที่ถาม) ลบแพ็คเกจทั้งหมดที่ติดตั้งใน virtual-env ในสภาพแวดล้อมของคุณอาจ setuptools จะดีกว่าติดตั้งในตำแหน่งทั่วโลกแทน?
blueberryfields

7
คุณสามารถใช้pip freeze --exclude-editable | xargs pip uninstall -yเพื่อละเว้นแพ็คเกจ VCS โดยไม่ใช้รูปแบบ grep
Connor Brinton

2
และเพื่อถอนการติดตั้งแพ็คเกจที่แก้ไขได้โปรดดูstackoverflow.com/questions/17346619
Dan Oak

318

สิ่งนี้จะใช้ได้กับระบบ Mac, Windows และ Linux ทั้งหมด ในการรับรายการของแพคเกจ pip ทั้งหมดในไฟล์ requirements.txt (หมายเหตุ: นี่จะเขียนทับข้อกำหนด.txtหากมีอยู่แล้วจะสร้างแพ็คเกจใหม่อีกทั้งถ้าคุณไม่ต้องการแทนที่ข้อกำหนดเก่า.txtให้ตั้งชื่อไฟล์ที่แตกต่างกัน ในคำสั่งต่อไปนี้ทั้งหมดในสถานที่ requirements.txt)

pip freeze > requirements.txt

ตอนนี้เพื่อลบหนึ่งโดยหนึ่ง

pip uninstall -r requirements.txt

ถ้าเราต้องการลบทั้งหมดในครั้งเดียวแล้ว

pip uninstall -r requirements.txt -y

หากคุณกำลังทำงานในโครงการที่มีอยู่ที่มีrequirements.txtไฟล์และสภาพแวดล้อมของคุณได้แยกออกมาเพียงแค่เปลี่ยนจากตัวอย่างข้างต้นด้วยrequirements.txt toberemoved.txtจากนั้นเมื่อคุณทำตามขั้นตอนข้างต้นแล้วคุณสามารถใช้requirements.txtเพื่ออัปเดตสภาพแวดล้อมปัจจุบันของคุณได้

และสำหรับคำสั่งเดียวโดยไม่ต้องสร้างไฟล์ใด ๆ (ตามที่ @joeb แนะนำ)

pip uninstall -y -r <(pip freeze)

11
อาจคุ้มค่าที่จะกล่าวถึงว่าคุณบังคับให้เขียนทับไฟล์ requirements.txt ของพวกเขาในกรณีที่พวกเขาไม่รู้ :)
Dave Gregory

4
นอกจากนี้หากต้องการลบแพ็คเกจทั้งหมดการผนวก "-y" จะทำเช่นนั้น ตัวอย่าง:pip uninstall -r requirements.txt -y
David Metcalfe

58
คุณสามารถใช้pip uninstall -y -r <(pip freeze)ทำทุกอย่างได้ในครั้งเดียว
joeb

1
@ โจบใช่เราสามารถทำอย่างนั้นได้
Harshad Kavathiya

1
@HarshadKavathiya คุณสามารถใช้ไฟล์อื่นเพื่อเก็บ pip แช่แข็งเช่น "current.txt" เพื่อให้ความต้องการ
txt

118

ใช้งานได้กับล่าสุด ฉันคิดว่ามันเป็นวิธีที่สั้นและชัดเจนที่สุดที่จะทำ

virtualenv --clear MYENV

แต่โดยปกติฉันจะลบและสร้าง virtualenv ใหม่ตั้งแต่กฎที่ไม่สามารถเปลี่ยนแปลงได้!


7
สิ่งนี้มีประสิทธิภาพเหมือนกับการทำงานwipeenvหรือไม่ virtualenvwrapper.readthedocs.org/en/latest/…
Taylor Edmiston

จริงๆแล้ว - ดูเหมือน (จากสิ่งที่ฉันเพิ่งเจอ) ในขณะwipeenvที่ในสภาพแวดล้อมมีข้อผิดพลาดและไม่ลบอะไรเลยหากใช้ในบริบทของpip install -eการสร้างการพัฒนาความพยายามที่จะใช้virtualenv --clear MYENVไม่ทำให้เกิดข้อผิดพลาด แพ็คเกจที่คุณอาจติดตั้งไว้ก่อนหน้านี้ในสภาพแวดล้อม อย่างน้อยก็เป็นอย่างนี้ใน OSX ดูbitbucket.org/dhellmann/virtualenvwrapper/issues/211/…สำหรับข้อมูลเพิ่มเติม
mpacer

2
wipeenvเป็นนามแฝงที่จัดทำโดย virtualenvwrapper ดังนั้นจึงไม่ใช่ทุกคนที่มี
Jonathan Hartley

2
นี่เป็นกลอุบายที่สกปรก แต่ทำงานได้เหมือนเวทมนตร์ ฉันต้องการให้ทุกคนใช้ pip uninstall -r requirements.txt -y มันทำให้การทำความสะอาดที่ดี
Muema

84

ฉันต้องการยกระดับคำตอบนี้ออกจากส่วนความคิดเห็นเพราะมันเป็นหนึ่งในโซลูชั่นที่หรูหราที่สุดในหัวข้อ เครดิตเต็มสำหรับคำตอบนี้ไป@joeb

pip uninstall -y -r <(pip freeze)

สิ่งนี้ใช้งานได้ดีสำหรับฉันสำหรับกรณีที่ใช้ในการล้างโฟลเดอร์แพ็คเกจผู้ใช้ของฉันนอกบริบทของ virtualenv ซึ่งคำตอบข้างต้นหลายข้อไม่ได้จัดการ

แก้ไข: ใครรู้วิธีทำให้คำสั่งนี้ทำงานใน Makefile หรือไม่

โบนัส: นามแฝงทุบตี

ฉันเพิ่มสิ่งนี้ลงในโปรไฟล์ทุบตีของฉันเพื่อความสะดวก:

alias pipuninstallall="pip uninstall -y -r <(pip freeze)"

จากนั้นเรียกใช้:

pipuninstallall

ทางเลือกสำหรับ pipenv

หากคุณกำลังใช้pipenvคุณสามารถเรียกใช้:

pipenv uninstall --all

8
ควรเป็น # 1 ได้อย่างง่ายดาย
ทำเครื่องหมาย

ฉันชอบมัน แต่มันไม่ทำงานในกรณีที่เป็นโมฆะ ( pip freezeไม่มีผลลัพธ์ใด ๆ หากไม่มีการติดตั้งแพ็กเกจแล้วก็pip uninstallบ่นได้อย่างน่าเสียดาย)
Eric G

อืมจับได้ดี บางทีมันอาจถูกห่อไว้ในฟังก์ชั่นทุบตีที่ตรวจสอบว่าการแช่แข็งปิเปตเอาต์พุตไม่ว่างเปล่า ฉันไม่เห็นวิธีที่ยอดเยี่ยมในการบรรลุเป้าหมายในขณะที่รักษาคำสั่งไว้หนึ่งซับในสั้น ๆ
เทย์เลอร์เอ็ดมิสตัน

1
ทำให้การใช้ SH โดยค่าเริ่มต้น แต่ไวยากรณ์การทดแทน<(...)เป็น bashism ดังนั้นคุณสามารถใช้ bash -c "... " หรือหลีกเลี่ยงโดยการทำpip freeze | pip uninstall -r /dev/stdin
Caesar

ไม่ทำงานกับสมุดบันทึก Azure:ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
SeaDude

54

คำตอบอื่น ๆ ที่ใช้pip listหรือpip freeze ต้องรวมอยู่ใน--localนั้นจะถอนการติดตั้งแพ็คเกจที่พบในเนมสเปซทั่วไป

ดังนั้นนี่คือตัวอย่างที่ฉันใช้เป็นประจำ

 pip freeze --local | xargs pip uninstall -y

Ref: pip freeze --help


คำตอบที่ดี ... ทำงานกับฉัน
igorkf

ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.นี้ทำงานจนกว่าจะตีแพคเกจที่ผลิตข้อผิดพลาดนี้: จากนั้นฉันไม่สามารถถอนการติดตั้งโมดูลได้อีก
SeaDude

39

วิธีที่ 1 (พร้อมpip freeze)

pip freeze | xargs pip uninstall -y

วิธีที่ 2 (พร้อมpip list)

pip list | awk '{print $1}' | xargs pip uninstall -y

วิธีที่ 3 (พร้อมvirtualenv)

virtualenv --clear MYENV

2
ไม่จำเป็นต้องใช้ sudo และอาจเป็นอันตรายได้โดยไม่ต้องพิจารณาอย่างรอบคอบเนื่องจากจะมีผลกับการตั้งค่าเครื่องทั่วโลก ดูคำตอบนี้เช่น: stackoverflow.com/questions/15028648/…
blueberryfields

6
วิธีที่ 2 ( pip list) ใช้งานได้ดีจนกว่าคุณจะถอนการติดตั้ง pip โดยไม่ตั้งใจตัวเอง -_-
Justin

20

ฉันจัดการโดยทำสิ่งต่อไปนี้:

สร้างไฟล์ข้อกำหนดที่เรียกว่าreqs.txtด้วยรายการแพคเกจที่ติดตั้งในปัจจุบัน

pip freeze > reqs.txt

จากนั้นถอนการติดตั้งแพ็กเกจทั้งหมดจากreqs.txt

pip uninstall \
   -y # remove the package with prompting for confirmation
   -r reqs.txt

ฉันชอบวิธีนี้เนื่องจากคุณมีไฟล์ข้อกำหนด pip อยู่เสมอหากคุณทำผิดพลาด นอกจากนี้ยังทำซ้ำได้


เรียบง่ายและสง่างามทำงานเหมือนมีเสน่ห์
Satyaaditya

19

วิธีที่เร็วที่สุดคือการสร้าง virtualenv ใหม่ทั้งหมด ฉันสมมติว่าคุณมีไฟล์ requirements.txt ที่ตรงกับการใช้งานจริงหากไม่ใช่:

# On production:
pip freeze > reqs.txt

# On your machine:
rm $VIRTUALENV_DIRECTORY
mkdir $VIRTUALENV_DIRECTORY
pip install -r reqs.txt

2
สิ่งนี้ยังจัดการกับกรณีที่มีการติดตั้งที่แก้ไขได้ (โดยทั่วไปคือ setuptools พัฒนาโหมดการติดตั้ง) ที่สร้างไฟล์. egg-info แบบโลคัลที่แทรกแซงกระบวนการติดตั้ง / ถอนการติดตั้งที่เหลือหรือไม่ เนื่องจากมันเป็นชุดของไฟล์จึงดูเหมือนจะไม่ทราบวิธีจัดการสถานะของมันและแทนที่จะทำการถอนการติดตั้งสิ่งใด ๆ มันทำให้โครงสร้างไดเรกทอรีในเครื่องภายใต้ MYENV เสร็จสมบูรณ์ด้วย: `> python ที่สามารถใช้งานได้ใหม่ใน MYENV การสร้างไฟล์ปฏิบัติการใน MYENV / bin / python> การติดตั้ง setuptools, pip, wheel ... done 'แต่ MYENV ไม่ได้รีเซ็ตสภาพแวดล้อม!
mpacer

16

บน Windows หากpathกำหนดค่าไว้ถูกต้องคุณสามารถใช้:

pip freeze > unins && pip uninstall -y -r unins && del unins

มันควรจะเป็นกรณีที่คล้ายกันสำหรับระบบที่คล้าย Unix:

pip freeze > unins && pip uninstall -y -r unins && rm unins

เพียงแค่เตือนว่าสิ่งนี้ไม่สมบูรณ์อย่างสมบูรณ์เนื่องจากคุณอาจพบปัญหาเช่น 'ไม่พบไฟล์' แต่อาจทำงานได้ในบางกรณีอย่างไรก็ตาม

แก้ไข: เพื่อความชัดเจน: uninsเป็นไฟล์โดยพลการซึ่งมีข้อมูลเขียนออกมาเมื่อคำสั่งนี้ดำเนินการ:pip freeze > unins

ไฟล์นั้นที่ถูกเขียนทับจะถูกใช้เพื่อถอนการติดตั้งแพ็กเกจดังกล่าวข้างต้นโดยได้รับความยินยอมโดยนัย / การอนุมัติล่วงหน้าผ่านทาง pip uninstall -y -r unins

ในที่สุดไฟล์จะถูกลบเมื่อเสร็จสิ้น


14

ใช้ฟังก์ชั่นvirtualenvwrapper :

wipeenv

ดูเอกสารประกอบของ wipeenv


6
หากคุณใช้ virtualenvwrapper ให้พิมพ์wipeenv
raratiru

@raratiru, ดี, ตอนนี้เพื่อนร่วมงานของฉันอาจจะสงสัยว่าทำไมฉันเพิ่งถ่มน้ำลายกาแฟทั่วแป้นพิมพ์ของฉัน
Brian Joseph

@BrianJoseph ประณาม! ฉันตกลงมาจากเก้าอี้ ... ขอบคุณ!
raratiru

14

ก่อนอื่นให้เพิ่มแพ็คเกจทั้งหมดลงใน requirements.txt

pip freeze > requirements.txt

จากนั้นลบทั้งหมด

pip uninstall -y -r requirements.txt 

9

มันเป็นคำถามเก่า ๆ ที่ฉันรู้ แต่ฉันสะดุดไปแล้วดังนั้นสำหรับการอ้างอิงในอนาคตคุณสามารถทำได้:

pip uninstall [options] <package> ...
pip uninstall [options] -r <requirements file> ...

-r, - ข้อกำหนดของไฟล์

ถอนการติดตั้งแพ็กเกจทั้งหมดที่ระบุไว้ในไฟล์ข้อกำหนดที่กำหนด ตัวเลือกนี้สามารถใช้ได้หลายครั้ง

จากเอกสารคู่มือpipเวอร์ชั่น 8.1


8

สำหรับผู้ใช้ Windows นี่คือสิ่งที่ฉันใช้บนWindows PowerShell

 pip uninstall -y (pip freeze)

6

(เพิ่มคำตอบนี้เพราะฉันไม่มีชื่อเสียงเพียงพอที่จะแสดงความคิดเห็นในคำตอบของ @blueberryfields)

คำตอบของ @blueberryfields ทำงานได้ดี แต่ล้มเหลวหากไม่มีแพ็คเกจที่จะถอนการติดตั้ง (ซึ่งอาจเป็นปัญหาหาก "ถอนการติดตั้งทั้งหมด" นี้เป็นส่วนหนึ่งของสคริปต์หรือ makefile) สิ่งนี้สามารถแก้ไขได้xargs -rเมื่อใช้เวอร์ชั่นของ GNU xargs:

pip freeze --exclude-editable | xargs -r pip uninstall -y

จากman xargs:

-r, - no-run-if-empty

หากอินพุตมาตรฐานไม่มีช่องว่างใด ๆ ห้ามรันคำสั่ง โดยปกติคำสั่งจะรันหนึ่งครั้งแม้ว่าจะไม่มีอินพุต ตัวเลือกนี้เป็นส่วนขยายของ GNU


6
pip3 freeze --local | xargs pip3 uninstall -y

pip3 freeze --localกรณีที่อาจจะมีที่หนึ่งที่มีการเรียกใช้คำสั่งนี้หลายครั้งที่จะได้รับที่ว่างเปล่า


3

นี่เป็นวิธีที่ง่ายที่สุดในการถอนการติดตั้งแพ็กเกจหลามทั้งหมด

from pip import get_installed_distributions
from os import system
for i in get_installed_distributions():
    system("pip3 uninstall {} -y -q".format(i.key))

2

การสนับสนุนข้ามแพลตฟอร์มโดยใช้เท่านั้นpip:

#!/usr/bin/env python

from sys import stderr
from pip.commands.uninstall import UninstallCommand
from pip import get_installed_distributions

pip_uninstall = UninstallCommand()
options, args = pip_uninstall.parse_args([
    package.project_name
    for package in
    get_installed_distributions()
    if not package.location.endswith('dist-packages')
])

options.yes = True  # Don't confirm before uninstall
# set `options.require_venv` to True for virtualenv restriction

try:
    print pip_uninstall.run(options, args)
except OSError as e:
    if e.errno != 13:
        raise e
    print >> stderr, "You lack permissions to uninstall this package.
                      Perhaps run with sudo? Exiting."
    exit(13)
# Plenty of other exceptions can be thrown, e.g.: `InstallationError`
# handle them if you want to.


2

วิธีที่ง่ายต่อการใช้งานข้ามแพลตฟอร์มและทำงานใน pipenv ได้เป็นอย่างดีคือ:

pip freeze 
pip uninstall -r requirement

โดย pipenv:

pipenv run pip freeze 
pipenv run pip uninstall -r requirement

แต่จะไม่อัปเดต piplock หรือ pipfile ดังนั้นโปรดระวัง


1

หากคุณกำลังทำงานvirtualenv:

virtualenv --clear </path/to/your/virtualenv>

ตัวอย่างเช่นหาก virtualenv ของคุณเป็น/Users/you/.virtualenvs/projectxเช่นนั้นคุณจะทำงาน:

virtualenv --clear /Users/you/.virtualenvs/projectx

หากคุณไม่ทราบว่าที่ตั้งของ env เสมือนจริงคุณสามารถเรียกใช้which pythonจากภายใน env เสมือนที่เปิดใช้งานเพื่อรับเส้นทาง


1

ในกรณีของฉันฉันได้ติดตั้งแพคเกจจำนวนหนึ่งทั่วโลกโดยไม่ตั้งใจโดยใช้ Homebrew ติดตั้งpipบน macOS วิธีที่ง่ายที่สุดในการย้อนกลับไปใช้แพ็คเกจเริ่มต้นนั้นง่ายมาก:

$ brew reinstall python

หรือถ้าคุณใช้pip3:

$ brew reinstall python3

คำตอบนี้ถือว่ามากเกินไปเกี่ยวกับสภาพแวดล้อมและไม่ได้แก้ปัญหาโดยตรงหากคุณใช้ pyenv
Mark

@ Mark แน่ใจว่าถ้าคุณใช้ pyenv คุณจะต้องทำอะไรที่แตกต่างออกไป ในกรณีทั่วไปที่คุณไม่ได้ผมเชื่อว่านี่เป็นทางออกที่ง่ายและแฮ็กน้อยที่สุด โปรดทราบว่าเงื่อนไขนี้ระบุไว้อย่างชัดเจนในตอนต้นของคำตอบ
Radon Rosborough

OP ถามเกี่ยวกับ virtualenv เขาไม่ได้กล่าวถึงการใช้ Mac หรือก่อให้เกิดการติดตั้ง Python ดังนั้นคุณไม่สามารถสันนิษฐานได้ว่าใช้ระบบปฏิบัติการหรือชง - และคำตอบนี้จะไม่แก้ไขเงื่อนไขทั้งหมด หากคุณมุ่งเน้นการแก้ปัญหาสิ่งแวดล้อมโดยใช้เครื่องมือเช่น pip - คุณจะกล่าวถึงบริบทของสภาพแวดล้อมที่คุณอยู่ภายใน หวังว่ามันสมเหตุสมผล
Mark

1
@ มาร์คฉันเข้าใจตำแหน่งของคุณ เราสามารถตกลงที่จะไม่เห็นด้วย ฉันแค่ต้องการช่วยเหลือผู้คนจาก Google ที่คลิกที่ลิงค์ที่ชื่อว่า "วิธีที่ง่ายที่สุดในการลบแพ็คเกจทั้งหมดที่ติดตั้งโดย pip คืออะไร" เมื่อพวกเขาต้องการที่จะลบแพคเกจทั้งหมดที่ติดตั้งทั่วโลกโดย pip
Radon Rosborough

เห็นด้วยกับ @RadonRosborough ชื่อลิงก์เป็นตัวแทนของสาเหตุที่ฉันถึงที่นี่แม้ว่า OP ไม่ได้ถามคำถามเดียวกัน
Kenn Sebesta

1

ในCommand Shellของ Windows คำสั่งpip freeze | xargs pip uninstall -yจะไม่ทำงาน ดังนั้นสำหรับพวกคุณที่ใช้ Windows ฉันได้ค้นพบวิธีอื่นในการทำเช่นนั้น

  1. คัดลอกชื่อทั้งหมดของแพ็กเกจpip ที่ติดตั้งจากpip freezeคำสั่งไปยังไฟล์. txt
  2. จากนั้นไปที่ตำแหน่งของไฟล์. txtของคุณแล้วเรียกใช้คำสั่งpip uninstall -r *textfile.txt*


1

ฉันใช้ตัวเลือก - ผู้ใช้เพื่อถอนการติดตั้งแพ็คเกจทั้งหมดที่ติดตั้งในเว็บไซต์ผู้ใช้

แช่แข็ง pip3 --user | xargs pip3 ถอนการติดตั้ง -y


ฉันเชื่อว่าคำตอบนี้ไม่ได้เพิ่มข้อมูลใหม่มากนักฉันอยากจะแนะนำให้ปรับปรุงคำตอบที่คล้ายกันที่มีอยู่แล้วเช่นคำตอบนี้: stackoverflow.com/a/45475070/11138259
sinoroc

-1

Pip ไม่มีทางรู้ได้ว่ามีการติดตั้งแพ็คเกจใดและผู้จัดการแพ็คเกจของคุณติดตั้งแพคเกจใดบ้าง สำหรับสิ่งนี้คุณจะต้องทำอะไรแบบนี้

สำหรับ distros ที่ใช้ rpm (แทนที่ python2.7 ด้วยเวอร์ชัน python ที่คุณติดตั้ง pip ด้วย):

find /usr/lib/python2.7/ |while read f; do
  if ! rpm -qf "$f" &> /dev/null; then
    echo "$f"
  fi
done |xargs rm -fr

สำหรับการแจกแจงแบบอิงเดบิต:

find /usr/lib/python2.7/ |while read f; do
  if ! dpkg-query -S "$f" &> /dev/null; then
    echo "$f"
  fi
done |xargs rm -fr

จากนั้นเพื่อล้างไดเรกทอรีว่างที่เหลืออยู่:

find /usr/lib/python2.7 -type d -empty |xargs rm -fr

ฉันพบคำตอบที่ทำให้เข้าใจผิดมากเพราะจะลบแพ็กเกจหลาม (ส่วนใหญ่?) ออกจากการแจกจ่ายของคุณและอาจทำให้คุณมีระบบที่ใช้งานไม่ได้


ด้วยความเคารพเนื่องจากทั้งหมดนี้ดูเหมือนว่าเปรียบได้ ทำไมไม่dpkg-query -S '/usr/lib/python2.7/*'แตกชื่อและdpkg-query -Lแต่ละชื่อเพื่อดัมพ์ไฟล์ที่เกี่ยวข้อง? มันมีรายการที่เตรียมไว้แล้ว ข้อคัดค้านหลักของฉันคือแทนที่จะกำหนดเป้ แสดงรายการแพคเกจที่ติดตั้งภายในและบางคนแม้จะpip list -l pip install --target=...การถอดไดเออร์ที่ว่างเปล่าในปัจจุบันทั้งหมดจะกัดคุณเช่นกัน!
John P
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.