Установка внешних пакетов в Canopy Python с помощью easy_install без прав администратора

Я пользователь компьютера с Windows без прав администратора и только что установил Canopy Python от Enthought (и я был очень рад, что смог сделать это без прав администратора). Теперь я хотел бы установить внешний пакет (который недоступен в Canopy Python в качестве академического пользователя). Инструкции на странице поддержки от Enthought предлагают что для установки внешнего пакета мы можем просто открыть командное окно, убедиться, что Canopy Python находится на пути SHELL, а затем «следовать стандартным процедурам установки Python из командной строки», при этом предлагаемый подход заключается в использовании easy_install. Однако, как не администратор, при попытке использовать easy_install появляется диалоговое окно с запросом имени пользователя/пароля администратора (которого у меня нет как у обычного пользователя). Кто-нибудь знает, можно ли использовать easy_install без прав администратора или есть альтернативное решение для установки внешних пакетов для пользователей без прав администратора для Canopy Python?


person Mona    schedule 11.04.2013    source источник


Ответы (2)


Возможно ли, что вы используете easy_install другого дистрибутива Python на своем компьютере?

Расположение easy_install по умолчанию в Canopy:

C:\Users\YourName\AppData\Local\Enthought\Canopy\User\Scripts\easy_install

Пожалуйста, попробуйте использовать полный адрес явно и посмотрите, работает ли это, теоретически вам не нужны права администратора.

Обновление: проблема возникает из-за одной из эвристик, используемых Windows UAC для определения того, требует ли приложение повышения привилегий: если в имени есть слово «настройка» или «установить», будет предложено для высоты. (См. ниже ответ Моны о том, какие файлы переименовывать.) Вероятно, проще переименовать easy_install и использовать его для установки pip (easy install pip), а вместо этого использовать его.

person pberkes    schedule 12.04.2013
comment
В качестве альтернативы вы должны иметь возможность использовать терминал, который устанавливает для вас необходимые переменные среды, выбрав Start Menu > All Programs > Enthought Canopy > Canopy command prompt. Затем вы можете запускать сценарии, установленные Canopy, без необходимости явно указывать полный путь. - person punchagan; 12.04.2013
comment
Я только что попытался явно ввести полный путь к пути easy_install Enthought Canopy, предложенному выше, и получил то же диалоговое сообщение, в котором запрашивается имя пользователя/пароль администратора (на всякий случай я пробовал как с обычной командной строкой, так и с командной строкой Canopy). Я также пробовал просто использовать easy_install с командной строкой Canopy, и появляется то же самое диалоговое окно имени пользователя/пароля администратора (на самом деле, это то, что я пробовал первым). - person Mona; 12.04.2013

В качестве обновления, после поиска еще нескольких сведений о контроле доступа пользователей (UAC) в Windows (и наткнувшись на что-то, что упоминалось, что наличие «установить» в названии программы может вызвать проблемы, но я точно не знаю, было ли это причина проблемы в моем случае), я только что попробовал следующий «хак», который сработал для меня (но, возможно, кто-то еще может предложить более элегантное решение или может дать больше отзывов о том, почему это работает):

  1. Перейдите в C:\Users\Ваше имя\AppData\Local\Enthought\Canopy\User\Scripts\
  2. Переименуйте easy_install.exe в easy.exe
  3. Переименуйте easy_install-script.py в easy-script.py.
  4. Запустите «C:\Users\YourName\AppData\Local\Enthought\Canopy\User\Scripts\easy.exe PackageName» из командной строки.
  5. (Дождитесь установки пакета и проверьте его успешность, открыв Canopy Python и попытавшись импортировать пакет.)

Некоторые дополнительные комментарии: я получил сообщение об ошибке, если не выполнил вышеописанный шаг № 3 (также переименовав файл .py). Кроме того, мне нужно было ввести полный путь к easy.exe в этом случае из командной строки.

Это сработало для меня (и я могу использовать внешний пакет), но опять же, я предполагаю, что должно быть более «официальное» решение, не требующее переименования easy_install.

person Mona    schedule 12.04.2013
comment
Какая версия Windows у вас установлена? - person Jonathan March; 16.04.2013
comment
И какой брандмауэр и антивирус? - person Jonathan March; 16.04.2013
comment
У коллеги была аналогичная проблема в прошлом: проблема не в брандмауэре или антивирусе. Это одна из эвристик, используемых Windows UAC для определения того, требует ли приложение повышения привилегий. Если в названии есть слово setup или install, появится запрос на повышение прав. - person pberkes; 16.04.2013
comment
А easy_install.exe вызывает easy_install-script.py. На самом деле исполняемый файл простой установки ищет файл .py с именем ‹easy_install_exe_name›-script.py, что объясняет необходимость шага 3. При всем при этом вам не нужен .exe: вы можете запустить easy_install-script.py напрямую, как в python path/to/Scripts/easy_install-script.py install package-name для установки package-name. - person Oliver; 18.11.2013