คุณสามารถลบไดเร็กทอรีออกจากการติดตั้ง python หรือมีไฟล์ที่ค้างอยู่ที่คุณต้องลบหรือไม่
คุณสามารถลบไดเร็กทอรีออกจากการติดตั้ง python หรือมีไฟล์ที่ค้างอยู่ที่คุณต้องลบหรือไม่
คำตอบ:
แตกต่างกันไปตามตัวเลือกที่คุณส่งผ่านไปinstallและเนื้อหาของไฟล์คอนฟิกูเรชัน distutilsบนระบบ / ในแพ็คเกจ ฉันไม่เชื่อว่ามีการแก้ไขไฟล์ใด ๆ นอกไดเรกทอรีที่ระบุด้วยวิธีเหล่านี้
โดยเฉพาะอย่างยิ่งdistutils ไม่มีคำสั่งถอนการติดตั้งในขณะนี้
นอกจากนี้ยังเป็นที่น่าสังเกตว่าการลบแพ็คเกจ / ไข่อาจทำให้เกิดปัญหาการพึ่งพา - สาธารณูปโภคเช่นeasy_installพยายามบรรเทาปัญหาดังกล่าว
สามสิ่งที่ติดตั้งที่คุณจะต้องลบคือ:
ตอนนี้ในระบบ linux ของฉันสิ่งเหล่านี้อาศัยอยู่ใน:
แต่ในระบบ windows พวกเขามีแนวโน้มที่จะอยู่ในไดเรกทอรีการแจกจ่าย Python ทั้งหมด ฉันไม่รู้เกี่ยวกับ OSX ยกเว้นว่าชอบทำตามรูปแบบ linux มากกว่า
การแฮ็กตามการประทับเวลาอื่น:
touch /tmp/tspython setup.py install --prefix=<PREFIX>find <PREFIX> -cnewer /tmp/ts | xargs rm -r| xargs rm -r. ผมขอแนะนำให้ไปกว่าแต่ละไฟล์ด้วยตนเอง ใน ext4 (และระบบไฟล์อื่น ๆ ) findจะแสดงรายการโฟลเดอร์ทั้งหมดด้วย ถ้าคำนำหน้าของคุณ/usrคุณจะลบ /usr/*
ใช่มันปลอดภัยที่จะลบอะไรก็ตามที่ติดตั้งสิ่งกีดขวางออกไป สำหรับโฟลเดอร์ที่ติดตั้งหรือไฟล์. Egg โดยปกติแล้วอะไรก็ตามที่ขึ้นอยู่กับรหัสนั้นจะไม่ทำงานอีกต่อไป
หากคุณต้องการให้ใช้งานได้อีกครั้งเพียงแค่ติดตั้งใหม่
อย่างไรก็ตามหากคุณใช้ distutils ให้พิจารณาใช้คุณสมบัติหลายเวอร์ชันด้วย ช่วยให้คุณสามารถติดตั้งแพ็คเกจเดียวได้หลายเวอร์ชัน นั่นหมายความว่าคุณไม่จำเป็นต้องลบแพ็คเกจเวอร์ชันเก่าหากคุณเพียงแค่ต้องการติดตั้งเวอร์ชันที่ใหม่กว่า
ใน ubuntu 12.04 ฉันพบว่าสถานที่เดียวที่คุณต้องดูตามค่าเริ่มต้นอยู่ภายใต้
/usr/local/lib/python2.7/
และเพียงแค่ลบโฟลเดอร์และไฟล์ที่เกี่ยวข้องหากมี!
ถ้านี่เป็นสำหรับการทดสอบและ / หรือเพื่อการพัฒนา, setuptoolsมีการพัฒนาคำสั่งว่าการปรับปรุงทุกครั้งที่คุณทำการเปลี่ยนแปลง (เพื่อให้คุณไม่จำเป็นต้องถอนการติดตั้งและติดตั้งทุกครั้งที่คุณทำการเปลี่ยนแปลง) และคุณสามารถถอนการติดตั้งแพ็กเกจโดยใช้คำสั่งนี้ได้เช่นกัน
หากคุณใช้สิ่งนี้สิ่งที่คุณประกาศว่าเป็นสคริปต์จะถูกทิ้งไว้เบื้องหลังเป็นไฟล์ที่ค้างคา
install --record + xargs rm
sudo python setup.py install --record files.txt
xargs sudo rm -rf < files.txt
ลบไฟล์ทั้งหมดและทิ้งไดเร็กทอรีว่างไว้ข้างหลัง
นั่นไม่เหมาะควรเพียงพอที่จะหลีกเลี่ยงความขัดแย้งของแพ็คเกจ
จากนั้นคุณสามารถทำงานให้เสร็จสิ้นได้ด้วยตนเองหากคุณต้องการโดยการอ่านfiles.txtหรือกล้าหาญและลบไดเร็กทอรีว่างโดยอัตโนมัติเช่นกัน
ผู้ช่วยที่ปลอดภัยคือ:
python-setup-uninstall() (
sudo rm -f files.txt
sudo python setup.py install --record files.txt && \
xargs rm -rf < files.txt
sudo rm -f files.txt
)
ทดสอบใน Python 2.7.6, Ubuntu 14.04
สำหรับ Python ใน Windows:
python -m pip uninstall "package_keyword"
uninstall **** (y/n)?
ฉันเพิ่งถอนการติดตั้งแพคเกจ python และแม้ว่าฉันจะไม่แน่ใจว่าฉันทำได้อย่างสมบูรณ์แบบ แต่ฉันก็มั่นใจพอสมควร
ฉันเริ่มต้นด้วยการรับรายการไฟล์ที่เกี่ยวข้องกับ python ทั้งหมดเรียงลำดับตามวันที่โดยสมมติว่าไฟล์ทั้งหมดในแพ็กเกจของฉันจะมีการประทับเวลาเดียวกันไม่มากก็น้อยและจะไม่มีไฟล์อื่น ๆ
โชคดีที่ผมได้มีงูหลามติดตั้งภายใต้/opt/Python-2.6.1; ถ้าฉันใช้ Python ที่มาพร้อมกับ Linux distro ของฉันฉันจะต้องกัดเซาะทั้งหมด/usrซึ่งจะต้องใช้เวลานาน
จากนั้นฉันก็เพียงแค่การตรวจสอบรายการที่และตั้งข้อสังเกตด้วยความโล่งใจว่าทุกสิ่งที่ผมอยากจะ Nuke ประกอบด้วยไดเรกทอรีหนึ่งและหนึ่งแฟ้ม/opt/Python-2.6.1/lib/python2.6/site-packages/module-name//opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info
ดังนั้นฉันจึงลบสิ่งเหล่านั้นออกไป
นี่คือวิธีที่ฉันได้รับรายการไฟล์ที่เรียงลำดับวันที่:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(ฉันคิดว่านั่นต้องเป็น GNU "ค้นหา" รสชาติที่คุณได้รับใน OS X ไม่ทราบเกี่ยวกับ "-printf '% T @'")
ฉันใช้สิ่งนั้นตลอดเวลา
สำหรับ Windows 7
แผงควบคุม -> โปรแกรม -> ถอนการติดตั้ง
แล้ว
เลือกแพ็คเกจ python ที่จะลบ
ใน Mac OSX ให้ลบ 2 ไดเรกทอรีนี้ด้วยตนเองภายใต้pathToPython / site-Packages /จะทำงาน:
ตัวอย่างเช่นในการลบpyasn1ซึ่งเป็นโครงการที่ติดตั้ง distutils:
หากต้องการทราบว่าไซต์แพ็คเกจของคุณอยู่ที่ไหน:
python -m site
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible.
ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible.
Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit
Attempting uninstall: torch
Found existing installation: torch 1.0.0
Uninstalling torch-1.0.0:
Successfully uninstalled torch-1.0.0
Attempting uninstall: torchvision
Found existing installation: torchvision 0.2.1
Uninstalling torchvision-0.2.1:
Successfully uninstalled torchvision-0.2.1
Attempting uninstall: entrypoints
Found existing installation: entrypoints 0.2.3
ERROR: Cannot uninstall 'entrypoints'. 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.
จากนั้นฉันพิมพ์:
conda uninstall entrypoints
pip install --upgrade pycodestyle
pip install nuscenes-devkit
เสร็จแล้ว!