web-dev-qa-db-fra.com

Impossible d'installer Python sans accès sudo

J'ai extrait, configuré et utilisé pour utiliser le package d'installation de mon serveur.

Cependant, je ne pouvais pas utiliser faire installer. Je reçois l'erreur

[~/wepapps/python/Python-2.6.1]# make install
/usr/bin/install -c python /usr/local/bin/python2.6
/usr/bin/install: cannot create regular file `/usr/local/bin/python2.6': Permission denied
make: *** [altbininstall] Error 1

Je cours le dossier avec

chmod +x Python-2.6.1

J'ai toujours la même erreur.

Comment puis-je exécuter faire installer sans accès sudo?

Comment puis-je installer sur un chemin sous mon annuaire de domicile?

mkdir /home/masi/.local

cd Python-2.6.1
make clean
./configure --prefix=/home/masi/.local
make
make install

Puis courez en utilisant:

/home/masi/.local/bin/python

De même si vous avez des scripts (par exemple, CGI) nécessitant votre propre version utilisateur de Python Vous devez leur dire explicitement:

#!/home/masi/.local/bin/python

au lieu d'utiliser le système par défaut Python Quel "#!/usr/bin/env python" choisira.

Vous pouvez modifier votre paramètre Chemin pour simplement taper "Python" à partir de la console Exécuter cette version, mais cela ne vous aidera pas pour les applications Web exécutées sous un utilisateur différent.

Si vous compilez quelque chose qui relie =Python (par exemple, mod_wsgi), vous devez le dire où trouver votre Python ou utilisera le système. Cela fait souvent quelque chose comme:

./configure --prefix=/home/masi/.local --with-python=/home/masi/.local

Pour d'autres extensions SETUP.PY, comme MySQLDB, vous devez simplement exécuter le script Setup.py avec la version correcte de Python:

/home/masi/.local/bin/python setup.py install
98
bobince

Extension de la réponse de Bobince, il existe un problème si vous n'avez pas le package de développement readline installé dans votre système et que vous n'avez pas d'accès root.

Quand Python est compilé sans readline, vos flèches ne fonctionneront pas dans l'interprète. Toutefois, vous pouvez installer le package autonome de lecture en lecture comme suit: Ajouter une fonctionnalité de lecture en lecture sans recompilation de python

D'autre part, si vous préférez compiler python à l'aide d'une installation locale de readline, voici comment.

Avant de faire comme Bobince, compilez, compilez et installez readline. Ce sont les étapes pour le faire:

Ensuite, ajoutez cette ligne à votre script .bash_profile:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib

Dernier, mais non le moindre, exécuter la commande suivante

export LDFLAGS="-L$HOME/.local"

J'espère que ça aidera quelqu'un!

4
GermanK

Vous ne pouvez pas; pas à /usr, De toute façon. Seuls les superutilisateurs peuvent écrire à ces répertoires. Essayez d'installer Python sur un chemin sous votre annuaire de domicile à la place.

2
kquinn