Estou tentando instalar a versão 1.2.2 do adaptador MySQL_python, usando um novo virtualenv criado com a --no-site-packages
opção A versão atual mostrada no PyPi é 1.2.3 . Existe uma maneira de instalar a versão mais antiga? Encontrei um artigo afirmando que isso deveria ser feito:
pip install MySQL_python==1.2.2
Quando instalado, no entanto, ele ainda aparece MySQL_python-1.2.3-py2.6.egg-info
nos pacotes do site. Esse é um problema específico deste pacote ou estou fazendo algo errado?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Respostas:
TL; DR:
pip install -Iv
(iepip install -Iv MySQL_python==1.2.2
)Primeiro, vejo dois problemas com o que você está tentando fazer. Como você já possui uma versão instalada, desinstale o driver existente atual ou use
pip install -I MySQL_python==1.2.2
No entanto, em breve você descobrirá que isso não funciona. Se você olhar o log de instalação do pip, ou se fizer
pip install -Iv MySQL_python==1.2.2
isso, verá que o link da URL do PyPI não funciona para o MySQL_python v1.2.2. Você pode verificar isso aqui: http://pypi.python.org/pypi/MySQL-python/1.2.2O link de download 404s e os links da URL de fallback estão redirecionando infinitamente devido à atualização recente do sourceforge.net e ao URL antigo do PyPI.
Portanto, para instalar corretamente o driver, você pode seguir estas etapas:
fonte
Você pode até usar um intervalo de versões com o
pip install
comando Algo assim:E se o pacote já estiver instalado e você desejar fazer o downgrade, adicione
--force-reinstall
assim:fonte
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Uma maneira, conforme sugerido neste post , é mencionar a versão
pip
como:ou seja, use
==
e mencione o número da versão para instalar apenas essa versão.-I, --ignore-installed
ignora pacotes já instalados.fonte
pip list
não estava ciente disso, masconda list
estava (e exibia as diferentes versões do pacote). Também Pycharm completamente confuso .Para instalar uma versão específica do pacote python, seja na primeira vez, em uma atualização ou em um downgrade, use:
O MySQL_python versão 1.2.2 não está disponível, então usei uma versão diferente. Para visualizar todas as versões de pacotes disponíveis de um índice, exclua a versão:
fonte
Acredito que se você já tiver um pacote instalado, o pip não o substituirá por outra versão. Use
-I
para ignorar versões anteriores.fonte
unset PYTHONPATH
de modo a manterpip
de ver as suas bibliotecas pré-instaladosÀs vezes, a versão instalada anteriormente é armazenada em cache.
Ele retorna o seguinte:
Requisito já satisfeito: pillow == 5.2.0 em /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Podemos usar --no-cache-dir junto com -I para sobrescrever isso
fonte
Como essa parece ser uma alteração introduzida na versão 10 do pip, fiz o downgrade para uma versão compatível:
Este comando diz ao pip para instalar uma versão do módulo inferior à versão 10. Faça isso em um virutalenv para não estragar a instalação do Python no site.
fonte
Recentemente, encontrei um problema ao usar
pip
o-I
sinalizador que queria documentar em algum lugar:-I
não vai desinstalar o pacote existente antes de prosseguir; apenas o instalará em cima do antigo. Isso significa que todos os arquivos que devem ser excluídos entre as versões serão deixados no lugar. Isso pode causar um comportamento estranho se esses arquivos compartilharem nomes com outros módulos instalados.Por exemplo, digamos que haja um pacote chamado
package
. Em um dospackage
arquivos s, eles usamimport datetime
. Agora, em[email protected]
, isso aponta para odatetime
módulo da biblioteca padrão , mas em[email protected]
, eles adicionaram um localdatetime.py
como um substituto para a versão da biblioteca padrão (por qualquer motivo).Agora vamos dizer que corro
pip install package==3.0.0
, mas depois percebo que eu realmente queria a versão2.0.0
. Se eu executar agorapip install -I package==2.0.0
, odatetime.py
arquivo antigo não será removido, portanto, qualquer chamada paraimport datetime
importará o módulo errado.No meu caso, isso se manifestou com estranhos erros de sintaxe, porque a versão mais recente do pacote adicionou um arquivo compatível apenas com o Python 3 e, quando desclassifiquei as versões do pacote para dar suporte ao Python 2, continuei importando o módulo somente do Python-3.
Com base nisso, eu argumentaria que a desinstalação do pacote antigo é sempre preferível ao uso
-I
ao atualizar as versões do pacote instalado.fonte
Este comando abaixo funcionou para mim
Versão Python - 2.7
pacote - python-jenkins
comando -
$ pip install 'python-jenkins>=1.1.1'
fonte
Existem 2 maneiras de instalar qualquer pacote com a versão: - A). pip install -Iv package-name == versão B). pip install -v nome do pacote == versão
Para
Aqui, se você estiver usando a opção -I durante a instalação (quando não souber se o pacote já está instalado) (como 'pip install -Iv pyreadline == 2. *' ou algo parecido), você estaria instalando um novo pacote separado com o mesmo pacote existente com uma versão diferente.
Para B
2.e veja o que já está instalado pela lista de pip
3.se a lista de pacotes contiver qualquer pacote que você deseja instalar com uma versão específica, a melhor opção é desinstalar o pacote desta versão primeiro, desinstalando o pip nome do pacote
4. E agora você pode reinstalar o mesmo pacote com uma versão específica, instalando pip -v nome do pacote == versão, por exemplo, pip install -v pyreadline == 2. *
fonte
Se você deseja atualizar para a versão mais recente e não sabe qual é a versão mais recente, pode digitar.
pip instala MySQL_python --upgrade
Isso atualizará o MySQL_python para a versão mais recente disponível, você pode usar para qualquer outra versão do pacote.
fonte