Я использую pip с файлом требований в virtualenv для своих проектов Django. Я пытаюсь обновить некоторые пакеты, особенно сам Django, и получаю сообщение об ошибке конфликта исходного кода:
Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))
Это после обновления номера версии Django с 1.2.3 до 1.2.4 в моем файле требований. Я использую эту команду для обновления:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
Я не могу найти флаг, который запускает повторную загрузку пакета. Я даже попытался сначала запустить команду удаления, затем установить, но не играли в кости. Может я что-то упустил?
django
virtualenv
pip
gcaprio
источник
источник
Ответы:
Я не уверен, что это именно ваша проблема, но в моем случае я не смог обновить Django до 1.2.4 - я всегда заканчивал с версией 1.2.3, поэтому я удалил Django с:
Затем я удалил
<virtualenv>/build/Django
каталог и наконец установил правильную версию с:Надеюсь, это поможет.
источник
pip install Django -U
илиpip install Django --upgrade
как описано в ответе @JoeyG.Я выполнил следующую команду, и она обновилась с 1.2.3 до 1.4.0
Ярлык для обновления:
Примечание : если у обновляемого пакета есть какие-либо требования, эта команда дополнительно обновит все требования до последних доступных версий. В последних версиях pip вы можете предотвратить это поведение, указав
--upgrade-strategy only-if-needed
. С этим флагом зависимости не будут обновляться, если только установленные версии зависимых пакетов больше не будут соответствовать требованиям обновленного пакета.источник
pip install Requests --upgrade
и только «запросы» была модернизирована. В описании написано "обновить все указанные пакеты" при просмотре документов.pip install --upgrade django==1.4.0
согласно пип документации, пример 3
но, исходя из моего опыта, использование этого метода также обновит любой пакет, связанный с ним. пример:
Предположим, что вы хотите выполнить обновление
somepackage
, для которого требуетсяdjango >= 1.2.4
использовать этот метод, также будет выполнено обновлениеsomepackage
Иdjango
до новейшего обновления. Просто чтобы быть в безопасности, сделайте:Это позволит обновить
somepackage
и сохранить django до версии 1.2.4.источник
django
основного пакета, а затем с примера, который вы используете,somepackage
а затем используетеdjango
как зависимость.Комбинация команд для
--upgrade
:Является:
источник
Если вы обновите пакет, старый будет удален.
Удобный способ сделать это - использовать этот pip-upgrade, который также обновляет версии в вашем
requirements.txt
файле для выбранных пакетов (или всех пакетов).Установка
Применение
Активируйте свой virtualenv (важно, потому что он также установит новые версии обновленных пакетов в текущем virtualenv).
cd
в каталог вашего проекта, затем запустите:Расширенное использование
Если требования размещены в нестандартном месте, отправьте их в качестве аргументов:
Если вы уже знаете, какой пакет вы хотите обновить, просто отправьте их в качестве аргументов:
Если вам нужно перейти на версию до и после выпуска, добавьте
--prerelease
аргумент в вашу команду.Полное раскрытие: я написал этот пакет. Надеюсь, поможет.
источник
pip-upgrade -p all
обновит все ваши пакеты и обновит файл требований без какой-либо информации от вас.Если вы хотите обновить только один конкретный пакет с именем
somepackage
, команда, которую вы должны использовать в последних версиях pip:Это очень полезно, когда вы разработали приложение на django, которое в настоящее время будет работать только с определенной версией django (скажем, Django = 1.9.x) и хотите обновить какой-либо зависимый пакет с помощью функции исправления ошибок / новой функции, а обновленный пакет зависит от на django (но работает, скажем, с любой версией django после 1.5). Поведение по умолчанию
pip install --upgrade django-some-package
- обновить django до последней доступной версии, которая в противном случае могла бы сломать ваше приложение, хотя с--upgrade-strategy only-if-needed
зависимыми пакетами теперь будут обновляться только по мере необходимости.источник
Обычно pip будет очищаться после себя и удалять содержимое каталога сборки. Единственный раз, когда он этого не делает, это если:
--no-install
опциюВо всех других случаях у вас не должно быть
build
каталога, который засоряет вашу среду.источник
Определение конкретной версии для обновления мне помогло, а не только команда обновления.
источник
это решило для меня проблему "pip install -I --upgrade psutil --force", после чего просто удалите psutil с новой версией и надеюсь, что вы можете внезапно установить старую версию (:
источник
Я использую это:
источник