Numpy install хочет создать файл tmp в папке lib, где у меня нет прав на запись - PullRequest
0 голосов
/ 27 марта 2020

Я хочу установить numpy для python3 в локальной файловой системе с кластером Had oop, чтобы я мог использовать библиотеку в pyspark. Проблема в том, что я не могу установить numpy, если он не завершится с ошибкой на этапе, когда он пытается создать файл tmp в подпапке python3, за исключением того, что он пытается создать указанный файл tmp в lib с ограниченной записью, и каждый обходной путь I пытался постоянно терпел неудачу в этой точке. Снимок экрана с точной ошибкой:

PermissionError: [Errno 13] Отказано в доступе: '/usr/local/lib64/python3.6'

Я пытался направьте мой файл .bashr c в каталог с установкой python3 и другими пакетами, которые я установил для собственного использования, в дополнение к тому, что в настоящее время находится в защищенном от записи файле lib в локальной файловой системе. .bashr c ниже. Что еще нужно сделать, чтобы на этом шаге установки numpy был создан файл tmp в пакете python3, к которому у меня есть доступ на запись?

current .bashr c

Ответы [ 2 ]

2 голосов
/ 27 марта 2020

Есть несколько вариантов: - (Я бы выбрал одну виртуальную среду, потому что это самое чистое решение, которое работало для меня легко, не вмешиваясь ни в что другое.)

  1. Один из них использует sudo, чтобы получить root доступ и установить его там.

  2. Другие варианты - установить его в отдельную виртуальную среду. (или, возможно, установите его в папке пользователя).

Ответный ответ: Ссылка на выпуск Github

0 голосов
/ 27 марта 2020

Вы пытаетесь установить с пипом python3 .6 системы, а не с python, который у вас есть на вашем пути /run/user. Используя текущий псевдоним python, попробуйте установить numpy с

python -m pip install numpySOMETHING.whl

. Чтобы избежать конфликтов, рассмотрите возможность использования сред с virtualenv или conda.

. Если вы только Если у вас есть проблема с TMP, вы можете решить ее, создав временную папку в текущем каталоге.

if [[ -O $PWD/TMP && -d $PWD/TMP ]]; then
    TMPDIR=$PWD/TMP
else
    rm -rf $PWD/TMP 2> /dev/null
    mkdir -p $PWD/TMP
    TMPDIR=$(mktemp -d $PWD/TMP/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR
export TMPDIR TMP TEMP

А когда вы закончите sh установку.

unset TMPDIR TMP TEMP
...