Невозможно установить Python без доступа sudo - PullRequest
36 голосов
/ 08 марта 2009

Я извлек, настроил и использовал make для установочного пакета на моем сервере.

Однако я не смог использовать make install . Я получаю ошибку

[~/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

Я запускаю папку с

chmod +x Python-2.6.1

Я получаю все ту же ошибку.

Как запустить make install без доступа sudo?

Ответы [ 3 ]

94 голосов
/ 08 марта 2009

Как мне установить путь в мой домашний каталог?

mkdir /home/masi/.local

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

Затем запустите, используя:

/home/masi/.local/bin/python

Точно так же, если у вас есть скрипты (например, CGI), для которых требуется собственная пользовательская версия Python, вы должны указать их явно:

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

вместо системного Python по умолчанию, который выберет «#! / Usr / bin / env python».

Вы можете изменить настройку PATH, чтобы просто ввести «python» с консоли, запустить эту версию, но это не поможет веб-приложениям, запущенным под другим пользователем.

Если вы компилируете что-то, что ссылается на Python (например, mod_wsgi), вы должны указать ему, где найти ваш Python, или он вместо этого будет использовать системный. Это часто делается что-то вроде:

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

Для других расширений на основе setup.py, таких как MySQLdb, вам просто нужно запустить скрипт setup.py с правильной версией Python:

/home/masi/.local/bin/python setup.py install
2 голосов
/ 24 мая 2013

Расширение ответа bobince, есть проблема, если у вас не установлен пакет разработки readline, и у вас нет root-доступа.

Когда Python компилируется без readline, ваши клавиши со стрелками не будут работать в интерпретаторе. Однако вы можете установить автономный пакет readline следующим образом: Добавление функции Readline без перекомпиляции Python

С другой стороны, если вы предпочитаете компилировать python с использованием локальной установки readline, вот как.

Прежде чем делать, как говорил Бобинс, скомпилируйте и установите readline. Вот шаги для этого:

Затем добавьте эту строку в ваш скрипт .bash_profile:

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

И последнее, но не менее важное: выполните следующую команду

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

Надеюсь, это кому-нибудь поможет!

2 голосов
/ 08 марта 2009

Вы не можете; во всяком случае, не до /usr. Только суперпользователи могут писать в эти каталоги. Попробуйте вместо этого установить Python в путь к домашней директории.

...