Estou usando o pip com um arquivo de requisitos, em um virtualenv, para meus projetos do Django. Estou tentando atualizar alguns pacotes, principalmente o próprio Django, e estou recebendo um erro sobre conflitos de código-fonte:
Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))
Isso foi depois de atualizar o número da versão do Django de 1.2.3 para 1.2.4 no meu arquivo de requisitos. Estou usando este comando para realmente fazer a atualização:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
Não consigo encontrar nenhum sinalizador que desencadeie um novo download total do pacote. Eu até tentei executar um comando de desinstalação primeiro, depois a instalação, mas sem dados. Talvez esteja faltando alguma coisa?
django
virtualenv
pip
gcaprio
fonte
fonte
Respostas:
Não tenho certeza se é exatamente o seu problema, mas no meu caso, não consegui atualizar o Django para a 1.2.4 - estava sempre terminando a versão 1.2.3, por isso desinstalei o Django com:
Em seguida, removi o
<virtualenv>/build/Django
diretório e finalmente instalei a versão adequada com:Espero que isso ajude.
fonte
pip install Django -U
oupip install Django --upgrade
conforme descrito na resposta de @JoeyG.Executei o seguinte comando e ele atualizou de 1.2.3 para 1.4.0
Atalho para atualização:
Nota : se o pacote que você estiver atualizando tiver algum requisito, este comando atualizará adicionalmente todos os requisitos para as últimas versões disponíveis. Nas versões recentes do pip, você pode impedir esse comportamento especificando
--upgrade-strategy only-if-needed
. Com esse sinalizador, as dependências não serão atualizadas, a menos que as versões instaladas dos pacotes dependentes não atendam mais aos requisitos do pacote atualizado.fonte
pip install Requests --upgrade
e apenas "pedidos" foram atualizados. A descrição diz "atualizar todos os pacotes especificados " quando visualizo os documentos.pip install --upgrade django==1.4.0
de acordo com o exemplo 3 do doc docs
mas com base na minha experiência, o uso desse método também atualizará qualquer pacote relacionado a ele. exemplo:
Suponha que você queira atualizar e
somepackage
que exija odjango >= 1.2.4
uso desse tipo de método, ele também atualizarásomepackage
Edjango
para a atualização mais recente. Só para garantir, faça:Fazer isso atualizará
somepackage
e manterá o django na versão 1.2.4fonte
django
como um pacote principal e, no exemplo, usasomepackage
e depois usadjango
como dependência.O comando de atalho para
--upgrade
:É:
fonte
Se você atualizar um pacote, o antigo será desinstalado.
Uma maneira conveniente de fazer isso é usar esse pip-upgradeer que também atualiza as versões em seu
requirements.txt
arquivo para os pacotes escolhidos (ou todos os pacotes).Instalação
Uso
Ative seu virtualenv (importante, porque também instalará as novas versões dos pacotes atualizados no virtualenv atual).
cd
no diretório do projeto e execute:Uso avançado
Se os requisitos forem colocados em um local não padrão, envie-os como argumentos:
Se você já sabe qual pacote deseja atualizar, basta enviá-los como argumentos:
Se você precisar atualizar para a versão de pré-lançamento / pós-lançamento, adicione
--prerelease
argumento ao seu comando.Divulgação completa: escrevi este pacote. Espero que ajude.
fonte
pip-upgrade -p all
atualizará todos os seus pacotes e atualizará o arquivo de requisitos sem precisar de nenhuma entrada sua.Se você deseja atualizar apenas um pacote específico chamado
somepackage
, o comando que você deve usar nas versões recentes do pip éIsso é muito útil quando você desenvolveu um aplicativo no django que atualmente funcionará apenas com uma versão específica do django (por exemplo, Django = 1.9.x) e deseja atualizar um pacote dependente com um recurso de correção de bug / novo e o pacote atualizado depende no django (mas funciona com digamos qualquer versão do django após a versão 1.5). O comportamento padrão de
pip install --upgrade django-some-package
seria atualizar o django para a versão mais recente disponível, o que poderia interromper o seu aplicativo, embora os--upgrade-strategy only-if-needed
pacotes dependentes agora sejam atualizados apenas conforme necessário.fonte
Normalmente, o pip irá limpar sozinho e remover o conteúdo do diretório de compilação. A única vez que isso não ocorre é se:
--no-install
opçãoEm todos os outros casos, você não deve ter um
build
diretório que esteja entupindo seu ambiente.fonte
Definir uma versão específica para atualização me ajudou em vez de apenas o comando upgrade.
fonte
que resolveu para mim o problema "pip install -I --upgrade psutil --force" depois desinstale o psutil com a nova versão e espere que você possa instalar repentinamente a versão anterior (:
fonte
Eu uso isso:
fonte