Próbuję zainstalować wersję 1.2.2 adaptera MySQL_python, używając świeżego virtualenv utworzonego z tą --no-site-packages
opcją. Obecna wersja pokazana w PyPi to 1.2.3 . Czy istnieje sposób na zainstalowanie starszej wersji? Znalazłem artykuł stwierdzający, że należy to zrobić:
pip install MySQL_python==1.2.2
Jednak po zainstalowaniu nadal wyświetla się MySQL_python-1.2.3-py2.6.egg-info
w pakietach witryny. Czy jest to problem specyficzny dla tego pakietu, czy robię coś złego?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Odpowiedzi:
TL; DR:
pip install -Iv
(tj.pip install -Iv MySQL_python==1.2.2
)Po pierwsze, widzę dwa problemy z tym, co próbujesz zrobić. Ponieważ masz już zainstalowaną wersję, odinstaluj istniejący sterownik lub użyj go
pip install -I MySQL_python==1.2.2
Jednak wkrótce przekonasz się, że to nie działa. Jeśli spojrzysz na dziennik instalacji pip, lub jeśli to zrobisz
pip install -Iv MySQL_python==1.2.2
, przekonasz się, że link URL PyPI nie działa dla MySQL_python v1.2.2. Możesz to sprawdzić tutaj: http://pypi.python.org/pypi/MySQL-python/1.2.2Link do pobrania 404 i linki zastępczego adresu URL przekierowują nieskończenie ze względu na ostatnią aktualizację sourceforge.net i nieaktualny adres URL PyPI.
Aby poprawnie zainstalować sterownik, możesz wykonać następujące kroki:
źródło
Możesz nawet użyć zakresu wersji z
pip install
poleceniem. Coś takiego:A jeśli pakiet jest już zainstalowany i chcesz go obniżyć, dodaj
--force-reinstall
:źródło
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Jednym ze sposobów, jak zasugerowano w tym poście , jest podanie wersji
pip
jako:tzn. użyj
==
i podaj numer wersji, aby zainstalować tylko tę wersję.-I, --ignore-installed
ignoruje już zainstalowane pakiety.źródło
pip list
nie był tego świadomy, aleconda list
był (i wyświetlał różne wersje pakietów). To także całkowicie pomieszało Pycharm .Aby zainstalować konkretną wersję pakietu Pythona, bez względu na to, czy jest to pierwszy raz, użyj uaktualnienia lub obniżenia wersji:
MySQL_python wersja 1.2.2 nie jest dostępna, więc użyłem innej wersji. Aby wyświetlić wszystkie dostępne wersje pakietów z indeksu, wyklucz wersję:
źródło
Wierzę, że jeśli masz już zainstalowany pakiet, pip nie zastąpi go inną wersją. Użyj,
-I
aby zignorować poprzednie wersje.źródło
unset PYTHONPATH
, aby niepip
wyświetlać preinstalowanych bibliotekCzasami poprzednio zainstalowana wersja jest buforowana.
Zwraca następujące
wymagania : Wymagania już spełnione: poduszka == 5.2.0 w /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Możemy użyć --no-cache-dir razem z -I, aby to zastąpić
źródło
Ponieważ okazało się, że jest to przełomowa zmiana wprowadzona w wersji 10 pip, obniżyłem wersję do kompatybilnej:
To polecenie mówi pipowi, aby zainstalował wersję modułu niższą niż wersja 10. Zrób to w virutalenv, aby nie spieprzyć instalacji Pythona w witrynie.
źródło
Niedawno wpadł problem przy korzystaniu
pip
„s-I
flagę że chciałem gdzieś dokumentu:-I
będzie nie odinstalować istniejący pakiet przed postępowaniem; po prostu zainstaluje go na starym. Oznacza to, że wszystkie pliki, które powinny zostać usunięte między wersjami, pozostaną na miejscu. Może to powodować dziwne zachowanie, jeśli pliki te mają wspólne nazwy z innymi zainstalowanymi modułami.Załóżmy na przykład, że istnieje pakiet o nazwie
package
. W jednym zpackage
plików używająimport datetime
. Teraz, w[email protected]
, wskazuje to na standardowydatetime
moduł biblioteki , ale w[email protected]
dodali lokalnydatetime.py
jako zamiennik standardowej wersji biblioteki (z dowolnego powodu).Powiedzmy teraz, że uruchamiam
pip install package==3.0.0
, ale potem zdaję sobie sprawę, że naprawdę chciałem wersji2.0.0
. Jeśli teraz uruchomiępip install -I package==2.0.0
, starydatetime.py
plik nie zostanie usunięty, więc wszelkie wywołania doimport datetime
zaimportują niewłaściwy moduł.W moim przypadku objawiało się to dziwnymi błędami składniowymi, ponieważ nowsza wersja pakietu dodała plik, który był zgodny tylko z Python 3, a kiedy obniżyłem wersje pakietów do obsługi Python 2, kontynuowałem importowanie modułu tylko do Python-3.
Na tej podstawie argumentowałbym, że odinstalowanie starego pakietu jest zawsze lepsze niż
-I
podczas aktualizacji zainstalowanych wersji pakietu.źródło
To polecenie poniżej działało dla mnie
Wersja Python - 2.7
pakiet - python-jenkins
Komenda -
$ pip install 'python-jenkins>=1.1.1'
źródło
Istnieją dwa sposoby instalacji dowolnego pakietu z wersją: - A). pip install -Iv nazwa-pakietu == wersja B). pip install -v nazwa-pakietu == wersja
Dla
Tutaj, jeśli używasz opcji -I podczas instalacji (gdy nie wiesz, czy pakiet jest już zainstalowany) (np. 'Pip install -Iv pyreadline == 2. *' lub coś takiego), instalowałbyś nowy oddzielny pakiet z tym samym istniejącym pakietem o innej wersji.
Dla B.
2. a następnie zobacz, co jest już zainstalowane przez listę pip
3. jeśli lista pakietów zawiera jakikolwiek pakiet, który chcesz zainstalować z określoną wersją, lepszym rozwiązaniem jest odinstalowanie pakietu tej wersji w pierwszej kolejności za pomocą polecenia pip uninstall nazwa-pakietu
4. A teraz możesz ponownie zainstalować ten sam pakiet z określoną wersją, pip install -v nazwa-pakietu == wersja np. Pip install -v pyreadline == 2. *
źródło
Jeśli chcesz zaktualizować do najnowszej wersji i nie wiesz, jaka jest najnowsza wersja, możesz wpisać.
pip zainstaluj MySQL_python --upgrade
Spowoduje to zaktualizowanie MySQL_python dla najnowszej dostępnej wersji, której można użyć dla dowolnej innej wersji pakietu.
źródło