ฉันสามารถบังคับให้ pip ติดตั้งเวอร์ชันปัจจุบันได้หรือไม่


507

ฉันเจอสถานการณ์ที่แพ็คเกจเวอร์ชันปัจจุบันดูเหมือนว่าจะไม่ทำงานและต้องติดตั้งใหม่ แต่pip install -Uจะไม่แตะต้องแพ็คเกจที่ทันสมัยอยู่แล้ว ฉันเห็นวิธีการบังคับให้ติดตั้งใหม่โดยถอนการติดตั้งครั้งแรก (ด้วยpip uninstall) แล้วติดตั้ง แต่มีวิธีบังคับเพียงแค่ "อัปเดต" เป็นเวอร์ชันปัจจุบันที่มีชื่อในขั้นตอนเดียวหรือไม่


สำหรับผู้ที่ต้องการติดตั้งใหม่ pip ตัวเอง (ถ้ามันหยุดทำงานด้วยเหตุผลบางอย่าง;)), คำตอบที่สามารถพบได้ในนี้ Q & A SO
nsof

คำตอบ:


744
pip install --upgrade --force-reinstall <package>

เมื่ออัปเกรดให้ติดตั้งแพ็กเกจทั้งหมดซ้ำอีกครั้งแม้ว่าจะเป็นรุ่นล่าสุดแล้ว

pip install -I <package>
pip install --ignore-installed <package>

ละเว้นแพ็คเกจที่ติดตั้ง (ติดตั้งใหม่แทน)


1
มีวิธีใดในการบังคับให้เขียนทับเมื่อใช้ --target = flag? สิ่งเหล่านี้ไม่เหมาะกับฉัน ฉันได้รับเส้นทางปลายทางมีข้อผิดพลาดอยู่แล้ว
radtek

@KeeganQuinn คุณคิดว่านั่นคือสิ่งที่ Karan หมายถึง "เมื่ออัพเกรด" ... ? ผมว่าอย่างนั้น. แต่คำชี้แจงของคุณช่วยฉันได้อย่างแน่นอน
ถั่วแดง

หากฉันต้องการเปลี่ยนแปลง zipline ซึ่งติดตั้งในกระบวนการของpip install pipeline-liveและเพียงแค่รับการเปลี่ยนแปลงใน zipline ของฉัน
gseattle

ไม่ควรรวมถึง--upgradeเวลาที่--force-reinstallจะใช้งานตั้งแต่ pip 10.0, FYI: github.com/pypa/pip/issues/1139
cjerdonek

1
@mrgloom using cachedหมายถึงใช้ไฟล์ต้นฉบับที่ซึ่งแคชไว้ในการติดตั้งครั้งล่าสุด หากต้องการบังคับให้ดาวน์โหลดซ้ำให้ใช้--no-cache-dirแฟล็ก
lcnittl

181

คุณอาจต้องการทั้งสามตัวเลือก: --upgradeและ--force-reinstallทำให้แน่ใจว่าการติดตั้งใหม่ในขณะที่--no-depsหลีกเลี่ยงการติดตั้งการพึ่งพา

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>

มิฉะนั้นคุณอาจพบปัญหาที่ pip เริ่มคอมไพล์ Numpy หรือแพ็คเกจขนาดใหญ่อื่น ๆ


1
วิธีนี้ใช้ได้กับการติดตั้งออฟไลน์ในขณะที่คำตอบที่ยกเว้นไม่สามารถทำได้
orodbhen

4
นี่เป็นวิธีแก้ปัญหาที่ดีกว่าสำหรับแพ็คเกจที่มีการขึ้นต่อกันจำนวนมากซึ่งไม่จำเป็นต้องติดตั้งใหม่
Assil Ksiksi

1
sudoเป็นสิ่งสำคัญในกรณีของฉัน
mrgloom

1
ทำไมเราต้องใช้--upgradeเมื่อเราใช้--force-reinstall?
mrgloom

@ FinnÅrupNielsenทำไมจึงควรอัปเกรดเวอร์ชันปัจจุบัน ที่ฉันเข้าใจที่นี่เราต้องการติดตั้งแพคเกจ จะทำอย่างไรถ้าใช้<package-name>==<package-version>รูปแบบ
mrgloom

33

หากคุณต้องการติดตั้งแพ็กเกจที่ระบุในไฟล์ requirements.txt โดยไม่ต้องอัพเกรดดังนั้นให้ติดตั้งเฉพาะเวอร์ชั่นที่ระบุในไฟล์ requirements.txt อีกครั้ง:

pip install -r requirements.txt --ignore-installed

29
--force-reinstall

ไม่ปรากฏว่าบังคับให้ติดตั้งใหม่โดยใช้ python2.7 ด้วย pip-1.5

ฉันต้องใช้

--no-deps --ignore-installed

20
คุณต้องระบุ--upgradeเพิ่มเติม--force-reinstallมิฉะนั้นจะไม่มีผลใด ๆ
คีแกนควินน์

6

หากคุณมีไฟล์ข้อความพร้อมแพ็กเกจจำนวนมากคุณต้องเพิ่มแฟล็ก -r

pip install --upgrade --no-deps --force-reinstall -r requirements.txt

5

ในกรณีที่คุณต้องบังคับให้ติดตั้งpip ใหม่เองคุณสามารถทำได้:

python -m pip install --upgrade --force-reinstall pip

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.