2013-03-28 3 views
27

J'essaie d'installer Django 1.4.3, mais quand j'exécutons Pip installer, pépin installer la version Django arrête tout 1,5 au lieu 1.4.3Pip installer: Comment forcer une version de package spécifique

sudo pip install -I Django==1.4.3

il retourne:

Downloading/unpacking Django==1.4.3 
    Running setup.py egg_info for package Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
=== >>>> Requested Django==1.4.3, but installing version 1.5 <<<< ==== 
Installing collected packages: Django 
    Found existing installation: Django 1.5 
    Uninstalling Django: 
     Successfully uninstalled Django 
    Running setup.py install for Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
    changing mode of /usr/local/bin/django-admin.py to 755 
Successfully installed Django 
Cleaning up... 

mais si j'exécute le gel pépin, il continue d'afficher

Django == 1.5

Qu'est-ce que je fais de mal?

Merci

+0

Question stupide, mais avez-vous essayé de désinstaller toutes les versions de Django, puis d'exécuter votre commande? – NT3RP

+0

oui je l'ai fait et ne fonctionne pas. J'ai aussi l'alternative pour télécharger le paquet et l'installer manuellement, mais je veux savoir s'il y a une option dans pip pour éviter ce comportement et forcer la version 1.4.3 – kothvandir

+0

as-tu essayé seulement le 'pip install Django == 1.4.3 ' – catherine

Répondre

17

Cela pourrait/devrait/peut être aidé en effaçant le répertoire de compilation pour Django dans pip. Il y a un bug pour cela, depuis la version 1.1 see here for details

Vous pouvez commencer à vérifier ces dossiers ici si vous êtes sur OS X ou unix comme les systèmes:

~/.pip 
/tmp/pip-build-root (or pip-build-$USER, if you aren't running pip as root). 

est si vous avez pas spécifié un nouveau dossier de construction lorsque vous avez installé la première version de Django.

Bonne chance!

+0

Cela ne fonctionne pas, ni avec -v drapeau ni réglage" Django <= 1.5 "ou en utilisant 'Django == 1.4.3'. Il ne génère aucune erreur, la version 1.5 s'installe correctement mais continue à dire Requested Django == 1.4.3, mais en installant la version 1.5. – kothvandir

+0

Voir la mise à jour –

+0

Je suis à peu près sûr que le drapeau -V est seulement pour sortir la version de pip actuellement installée et n'a rien à voir avec 'pip install'. – aiham

8

En tant que limelight says, vous devez vider votre cache et créer des répertoires, ou passer dans un emplacement propre temporaire avec le --download-cache et le drapeau.

$ pip help install 
[...] 
--download-cache <dir>  Cache downloaded packages in <dir>. 
-b, --build <dir>   Directory to unpack packages into and build in. The default in a virtualenv is "<venv path>/build". The default for global installs is 
          "<OS temp dir>/pip-build-<username>". 

Je voudrais mettre en garde les lecteurs de ne pas utiliser sudo pip install installer Django. Il installe Django à l'échelle du système. Et changer la version à l'échelle du système pourrait casser les paquets système qui en dépendent. Par exemple, Ubuntu MAAS et Cobbler dépendent du paquet système django. Ce sont généralement des services que vous ne voulez pas casser.

Si vous avez besoin d'une version différente de celle du progiciel, utilisez virtualenv pour isoler vos dépendances du système. OP semble être sur OSX et je ne connais pas de Mac Django à l'échelle du serveur, mais cela peut changer. Pensez à installer les paquets python avec sudo au pair pour changer le python installé par le système avec python 3; cela pourrait fonctionner pour le moment, mais il y a du paracétamol en stock, car vous avez des maux de tête.

+0

sur les fenêtres avec cygwin, vous avez besoin des deux indicateurs ci-dessus pour que pip puisse ignorer les caches. c'est un design bizarre - on pourrait penser qu'ajouter -U et forcer une version impliquerait que je voulais vraiment cette version, pas une version aléatoire qui se trouve dans mon cache. – fastmultiplication

4

Vérifiez votre cache local et supprimez-le peut être utile. J'ai installé pymongo == 2.5.2. Pour installer pymongo == 2.4.1, je supprime le cache dans /tmp/pip-build-root/pymongo.Puis, j'installe pymongo 2.4.1 avec succès.

Questions connexes