Saya menggunakan pip dengan file persyaratan, dalam virtualenv, untuk proyek Django saya. Saya mencoba untuk meningkatkan beberapa paket, terutama Django sendiri, dan saya mendapatkan kesalahan tentang konflik kode sumber:
Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))
Itu setelah memperbarui nomor versi Django dari 1.2.3 ke 1.2.4 di file persyaratan saya. Saya menggunakan perintah ini untuk benar-benar melakukan peningkatan:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
Saya tidak dapat menemukan bendera apa pun yang memicu pengunduhan total paket. Saya bahkan mencoba menjalankan perintah uninstall terlebih dahulu, kemudian instal tetapi tidak ada dadu. Mungkin saya melewatkan sesuatu?
django
virtualenv
pip
gcaprio
sumber
sumber
Jawaban:
Saya tidak yakin apakah itu benar-benar masalah Anda, tetapi dalam kasus saya, saya tidak dapat memutakhirkan Django ke 1.2.4 - Saya selalu selesai dengan versi 1.2.3, jadi saya mencopot Django dengan:
Lalu saya menghapus
<virtualenv>/build/Django
direktori dan akhirnya saya menginstal versi yang tepat dengan:Semoga ini bisa membantu.
sumber
pip install Django -U
ataupip install Django --upgrade
seperti yang dijelaskan dalam jawaban @ JoeyG.Saya menjalankan perintah berikut dan ditingkatkan dari 1.2.3 ke 1.4.0
Pintasan untuk peningkatan:
Catatan : jika paket yang Anda tingkatkan memiliki persyaratan apa pun, perintah ini juga akan memutakhirkan semua persyaratan ke versi terbaru yang tersedia. Di versi pip terbaru, Anda bisa mencegah perilaku ini dengan menentukan
--upgrade-strategy only-if-needed
. Dengan flag itu, dependensi tidak akan ditingkatkan kecuali versi yang terinstal dari paket dependen tidak lagi memenuhi persyaratan paket yang ditingkatkan.sumber
pip install Requests --upgrade
dan hanya "permintaan" yang ditingkatkan. Deskripsi mengatakan "tingkatkan semua paket yang ditentukan " ketika saya melihat dokumen.pip install --upgrade django==1.4.0
menurut pip docs contoh 3
tetapi berdasarkan pengalaman saya, menggunakan metode ini juga akan memutakhirkan paket apa pun yang terkait dengannya. contoh:
Asumsikan Anda ingin memutakhirkan
somepackage
yang mengharuskandjango >= 1.2.4
menggunakan metode semacam ini, ia juga akan memutakhirkansomepackage
DANdjango
ke pembaruan terbaru. Untuk amannya lakukan:Melakukan hal ini akan meningkatkan
somepackage
dan menjaga Django ke versi 1.2.4sumber
django
sebagai paket utama kemudian dalam contoh yang Anda gunakansomepackage
dan kemudian gunakandjango
sebagai dependensi.Perintah pintasan untuk
--upgrade
:Adalah:
sumber
Jika Anda meningkatkan paket, yang lama akan dihapus.
Cara mudah untuk melakukan ini adalah dengan menggunakan pip-upgrader ini yang juga memperbarui versi dalam
requirements.txt
file Anda untuk paket yang dipilih (atau semua paket).Instalasi
Pemakaian
Aktifkan virtualenv Anda (penting, karena itu juga akan menginstal versi baru dari paket yang ditingkatkan dalam virtualenv saat ini).
cd
ke direktori proyek Anda, lalu jalankan:Penggunaan tingkat lanjut
Jika persyaratan ditempatkan di lokasi yang tidak standar, kirimkan sebagai argumen:
Jika Anda sudah tahu paket apa yang ingin Anda tingkatkan, cukup kirimkan sebagai argumen:
Jika Anda perlu meningkatkan ke versi pra-rilis / pasca-rilis, tambahkan
--prerelease
argumen ke perintah Anda.Pengungkapan penuh: saya menulis paket ini. Semoga ini bisa membantu.
sumber
pip-upgrade -p all
akan memutakhirkan semua paket Anda dan memperbarui persyaratan file tanpa memerlukan input apa pun dari Anda.Jika Anda hanya ingin memutakhirkan satu paket spesifik yang dipanggil
somepackage
, perintah yang harus Anda gunakan dalam versi pip terbaru adalahIni sangat berguna ketika Anda mengembangkan aplikasi dalam Django yang saat ini hanya akan bekerja dengan versi spesifik Django (katakan Django = 1.9.x) dan ingin memutakhirkan beberapa paket dependen dengan fitur perbaikan bug / fitur baru dan paket yang ditingkatkan tergantung pada Django (tetapi bekerja dengan mengatakan versi Django setelah 1,5). Perilaku default
pip install --upgrade django-some-package
adalah untuk meningkatkan Django ke versi terbaru yang tersedia yang dapat merusak aplikasi Anda, meskipun dengan--upgrade-strategy only-if-needed
paket dependen sekarang hanya akan ditingkatkan sesuai kebutuhan.sumber
Biasanya, pip akan membersihkan sendiri dan menghapus isi direktori build. Satu-satunya waktu tidak melakukan ini adalah jika:
--no-install
opsiDalam semua kasus lain, Anda seharusnya tidak memiliki
build
direktori yang menyumbat lingkungan Anda.sumber
Menentukan versi spesifik untuk peningkatan membantu saya, bukan hanya perintah peningkatan.
sumber
yang memecahkan masalah bagi saya "pip install -I --upgrade psutil --force" setelah itu hanya menghapus instalan psutil dengan versi baru dan hop Anda tiba-tiba dapat menginstal versi yang lebih lama (:
sumber
Saya menggunakan ini:
sumber