Python отказано в доступе windows 10

Seems as though an update on Windows 10 overnight broke Python. Just trying to run python --version returned a "Permission Denied" error. None of the three updates; KB4507453, KB4506991, or KB4509...

Research

All of the files in %USERPROFILE%AppDataLocalMicrosoftWindowsApps are placeholders that point to files that are actually located somewhere in C:Program FilesWindowsApps, which happens to be denied permissions completely.

It appears I was on the right track with my statement made in my duplicate of this problem:

«Seems like they didn’t really think about the distribution method screwing with permissions!»

Source: Cannot install pylint in Git Bash on Windows (Windows Store)

Permissions are screwed up royally because of the WindowsApps distribution method:

enter image description here
enter image description here
enter image description here
Interestingly it says that the «Users» group can read and execute files, as well as my specific user, but the Administrators group can only List folder contents for some hilariously unfathomable reason. And when trying to access the folder in File Explorer, it refuses to even show the folder contents, so there’s something fishy about that as well.

Interestingly, even though executing python in CMD works just fine, the «WindowsApps» folder does not show up when listing the files in the directory it resides in, and attempting to navigate into the folder generates a «Permission denied» error:

enter image description here

Attempting to change the permissions requires changing the owner first, so I changed the owner to the Administrators group. After that, I attempted to change the permissions for the Administrators group to include Full control, but it was unable to change this, because «access was denied» (duh, Micro$ucks, that’s what we’re trying to change!).

enter image description here

This permission error happened for so many files that I used Alt+C to quickly click «Continue» on repeat messages, but this still took too long, so I canceled the process, resulting in this warning message popping up:

enter image description here

And now I am unable to set the TrustedInstaller user back as the owner of the WindowsApps folder, because it doesn’t show up in the list of Users/Groups/Built-in security principles/Other objects. *

enter image description here

*Actually, according to this tutorial, you can swap the owner back to TrustedInstaller by typing NT ServiceTrustedInstaller into the object name text box.

Solution

There is no solution. Basically, we are completely screwed. Classy move, Microsoft.

Содержание

  1. pip установить доступ запрещен на Windows
  2. 13 ответов
  3. «Отказано в доступе» при попытке запустить Python в Windows 10
  4. 8 ответов
  5. Исследование
  6. Решение
  7. Как избежать «Отказано в доступе» при использовании pip с virtualenv
  8. 8 ответов
  9. Не удалось установить пакеты из-за ошибки EnvironmentError: [WinError 5] Доступ запрещен:
  10. Ошибка, вызванная ограничением длины пути к файлу в Windows
  11. OSError: [Errno 13] Отказано в доступе при вызове os.remove ()
  12. 2 ответа

pip установить доступ запрещен на Windows

как я могу это сделать?

13 ответов

в случае windows в cmd попробуйте запустить pip install с помощью исполняемого файла python

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

измените разрешения безопасности вашей папки установки Python на:

Если вы открываете cmd как админ, тогда вы можете сделать следующее:

Примечание: я установил python через chocolatey

кроме того, я понятия не имею как выясните, какая программа блокирует конкретный файл, поэтому проще всего перезагрузить и выполнить установку перед запуском чего-либо, в частности, перед запуском, например, Spyder или любого другого программного обеспечения на основе Python. Вы также можете попытаться закрыть все программы, но может быть сложно узнать, какой из них действительно содержит файл. Например, для каталога достаточно, чтобы в этом каталоге было открыто окно Проводника.

Попробуйте удалить папку c:usersbrunoappdatalocaltempeasy_install-0fme6u вручную, а затем повторите команду pip.

Открытие командной строки как администратор просто работал для меня без использования исполняемого файла Python. Нажмите правой кнопкой мыши ярлык командной строки и выберите «Запуск от имени администратора». Затем выполните следующую команду.

причиной в моем случае был открытый ноутбук jupyter, который импортировал соответствующую библиотеку; основной причиной, по-видимому, является ошибка windows из-за открытия / использования файла (см. Также ответ @Robert и рекомендацию перезагрузить).

поэтому еще одна вещь, чтобы проверить, что никакие другие процессы python не запущены.

для меня закрытие сервера ноутбуков решило проблему.

Я встретил аналогичную проблему.Но отчет об ошибке

сначала я попробовал это https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035, но, похоже,это не могло решить мои проблемы, и все равно повторить ту же проблему.

и во-вторых, если вы работаете на бизнес-компьютере, как правило, может существовать фильтр веб-контента (но я могу получить доступ https://pypi.python.org через браузер напрямую).И решить эта проблема путем добавления прокси-сервера.

для windows откройте Internet properties через IE или Chrome или что угодно, затем установите valid прокси-адрес и порт,и таким образом решить мои проблемы

вышеуказанное решение 2 Альтернатива для вас требует.

попробуйте дать разрешение на полный контроль над папкой python.

найдите корневой каталог python—>щелкните правой кнопкой мыши— > свойства—>безопасность— > изменить—>дайте пользователям полный контроль— > да и дождитесь завершения процесса.

Это работает для меня.

просто закройте все открытые файлы python. И попробуйте запустить от имени администратора. Это сработает.

Источник

«Отказано в доступе» при попытке запустить Python в Windows 10

Согласно Системной информации, я работаю 10.0.18362

Следует также отметить, что это происходит независимо от того, выполняю ли я (пытаюсь) запустить Python из git-bash с использованием «запуска от имени администратора», и если я пытаюсь использовать PowerShell, он просто открывает хранилище Windows, как будто приложение не установлено, Я думаю, что по какой-то причине он не может видеть содержимое моей /c/Users/david/AppData/Local/Microsoft/WindowsApps/ папки.

Я также пытался переустановить Python 3.7.4, но это тоже не помогло. Есть ли что-то еще, на что я должен смотреть?

8 ответов

Перемещение этой записи ниже правильной папки Python (частично) решило проблему.

Вторая часть его исправления состоит в том, чтобы ввести «управление псевдонимами выполнения приложения» в поисковую строку Windows и полностью отключить версии Python для магазинов.

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

Исследование

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

«Похоже, они на самом деле не думали о том, как метод распространения искажает права доступа!»

Разрешения по-королевски испорчены из-за метода распространения WindowsApps:

Интересно, что группа «Пользователи» может читать и выполнять файлы, также как и мой конкретный пользователь, но группа «Администраторы» может только перечислять содержимое папки по какой-то веселой непостижимой причине. И при попытке получить доступ к папке в проводнике, он отказывается даже показывать содержимое папки, поэтому в этом тоже есть что-то подозрительное.

Интересно, что хотя выполнение python в CMD работает просто отлично, папка «WindowsApps» не отображается при перечислении файлов в каталоге, в котором она находится, а попытка перейти в папку приводит к ошибке «Отказано в доступе» :

mJRBf

TeKbA

Эта ошибка разрешения произошла для стольких файлов, что я использовал Alt + C, чтобы быстро нажать «Продолжить» в повторяющихся сообщениях, но это все равно заняло слишком много времени, поэтому я отменил процесс, в результате чего появилось это предупреждающее сообщение:

bGsPZ

И теперь я не могу установить пользователя TrustedInstaller обратно в качестве владельца папки WindowsApps, поскольку он не отображается в списке Пользователи / Группы / Встроенные принципы безопасности / Другие объекты. *

XYFVm

Решение

Там нет решения. В основном мы полностью облажались. Классный ход, Microsoft.

Это кажется ограничением в git-bash. Рекомендация использовать winpty python.exe сработала для меня. См. Python не работает в командной строке git bash для дополнительной информации.

Это не решение для PowerShell, но у меня была такая же проблема, за исключением MINGW64. Я обошел это, переключившись на Windows Subsystem для Linux (что я хотел сделать в любом случае) в качестве моего терминала, как правило, и в VSCode. Этот пост описывает это хорошо:

1) Установите Ubuntu из Windows App Store

3) Перезапустите VSCode

4) В VSCode замените «Terminal.integrated.shell.windows» на «C: WINDOWS System32 bash.exe» (подробности см. В посте выше)

Теперь работает без сбоев в VSCode и WSL (Bash на Ubuntu в Windows). Может быть, по крайней мере, временное решение для вас.

Может быть, вы можете попробовать открыть командную строку с правами администратора. (Запустить от имени администратора). Работает для меня большую часть времени.

Самое простое, что можно сделать, это изменить переменные окружения PATH и PYTHONPATH, чтобы убедиться, что папка, содержащая правильные двоичные файлы python, находится в локальной папке WindowsApp. Вы можете получить доступ к переменным среды, открыв панель управления и выполнив поиск «env»

juykt

Добавление локального пути Python до того, как WindowsApps решит проблему.

Источник

Как избежать «Отказано в доступе» при использовании pip с virtualenv

Я пытаюсь развернуть пакет Python с pip в виртуальной среде на компьютере с Ubuntu, но сталкиваюсь с проблемой, связанной с разрешениями. Например:

ошибка: не удалось создать ‘/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py’: разрешение отклонено

Как развернуть пакет в виртуальной среде с pip без ошибок, связанных с разрешениями?

8 ответов

Если вы создали виртуальную среду, используя root, используйте эту команду

Он даст вам root-доступ и затем активирует вашу виртуальную среду, используя эту

Если вы создали virtualenv от имени пользователя root, выполните следующую команду:

Это, вероятно, решит вашу проблему.

Вы не активировали виртуальную среду перед использованием pip.

У меня также было это (случайно) после создания нового венва в существующей виртуальной среде. простой способ диагностировать это состоит в том, чтобы увидеть, где python имеет символическую ссылку, т.е. выполнить:

При создании virtualenv, если вы используете sudo, каталог создается с правами суперпользователя. Так что при попытке установить пакет с пользователем, не являющимся пользователем sudo, у вас не будет разрешения на установку в него. Поэтому всегда создавайте virtualenv без sudo и устанавливайте без sudo.

Вы также можете скопировать пакеты, установленные на глобальном питоне, в virtualenv.

Источник

Не удалось установить пакеты из-за ошибки EnvironmentError: [WinError 5] Доступ запрещен:

У меня Windows 10. Я завершил установку Tensorflow. Оно работает. Он говорит: «Привет, Tensorflow!». Но перед ним все это:

Процесс возвратил 0 (0x0) время выполнения: 2,327 с. Нажмите любую клавишу, чтобы продолжить.

/.local/, or %APPDATA%Python on Windows. (See the Python documentation for site.USER_BASE for full details.)

Просто введите команду, которую вы хотите выполнить с разрешением пользователя, если вы не хотите изменять разрешение:

выполните ту же команду, используя ‘—user’

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

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

В моем случае windows10 :

Я использовал эту команду, и она сработала:

Я обновлял тензорный поток до 1.4.0 и бился головой о стену, поскольку эта ошибка не решала, но, наконец, решила ее. Угадай, что?

Один из моих скриптов python работал, и он использовал тензорный поток. Пакет успешно установлен после его закрытия. 👍

Для меня (в Windows) мне пришлось перезапустить терминал и запустить его как администратор (если вы используете терминал pycharm, просто закройте pycharm и снова откройте его как администратор, а затем повторите попытку). Это решило проблему, и установка прошла успешно.

Введите CMD в поиске, и когда в результатах поиска BEST MATCH появится командная строка, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора», когда появится окно управления пользователем, выберите «Да». Появится окно командной строки, и вы должны увидеть «C: / WINDOWS / system32>».

на этом этапе просто введите то, что вы хотите, должно работать!

решил мою проблему.

Ошибка, вызванная ограничением длины пути к файлу в Windows

Может случиться так, что pip не сможет установить пакеты при достижении предельного размера пути по умолчанию Windows, если Python установлен во вложенном месте, таком как структура папок AppData в домашнем каталоге пользователя, например:

В этом случае можно снять это ограничение в реестре Windows с помощью инструмента regedit:

Введите «regedit» в меню «Пуск» Windows, чтобы запустить regedit.

Подойдите к ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem ключу.

Измените значение LongPathsEnabled свойства этого ключа и установите его на 1.

Переустановите scikit-learn (игнорируя предыдущую неработающую установку):

Это должно работать

О боже. Здесь так много плохих ответов. Хорошие намерения, но вводящие в заблуждение. Обычно я нормально справляюсь с разрешениями на Mac / Linux. Windows в последнее время для меня в новинку. Это моя проблема.

Не делайте этого, не проверив следующие шаги. Внимательно прочтите сообщение.

Ни в коем случае это решение всех проблем с разрешениями, которые могут повлиять на вас. Я могу только дать рекомендации по устранению неполадок и, надеюсь, вы разрешите их.

Дополнительные действия: попробуйте удалить пакет и установить его. pip uninstall requests pip install requests Это работает, но у меня проблема с разрешением для определенного пакета.

Оказывается, Windows выдает ошибку разрешения, когда файл заблокирован процессом. Python сообщает об этом, [Winerror 5] и мне все равно было нелегко найти ссылку на эту документацию. Давайте проверим эту теорию.

Я нахожу именно тот файл, в котором возникает ошибка разрешения. Хит удалить. Конечно, Windows window подсказывает, что он открыт. python Конечно, это так.

Я попал end task на весь питон. Он работает с 1996 года. Но я подождал несколько секунд на случай, если какой-то процесс запустит питон. Проверил Task manager все хорошо.

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

Я запустил установку pip, и она установилась отлично.

Мораль истории: разберитесь, что вы делаете, прежде чем копировать вставку из Stackoverflow. Всего наилучшего.

ps Пожалуйста, прекратите установку Python или его пакетов от имени администратора. Мы прошли это с 2006 года

Источник

OSError: [Errno 13] Отказано в доступе при вызове os.remove ()

Для определенного сценария (я использую Squish от Froglogic) мне нужно скопировать определенные файлы в определенный каталог, запустить приложение, а затем удалить файлы после завершения процесса. Проблема возникает во время последней части. Когда я пытаюсь (например)

Таким образом, я думаю, что можно с уверенностью сказать, что у меня есть разрешения, которые мне нужны, тем более что я не получаю никаких ошибок при перезаписи файлов, помещенных в то же самое местоположение при предыдущем запуске сценария.

Я читал, что это сообщение об ошибке может возникать из-за того, что какой-то процесс остается открытым, но я не уверен, как это могло произойти; В тот момент, когда возникает эта ошибка, процесс, который должен использовать файлы, завершен.

2 ответа

Попробуйте отключить антивирусное программное обеспечение и убедитесь, что все процессы, использующие файл, завершены. Если это не помогает, попробуйте добавить небольшую задержку перед удалением, чтобы убедиться, что процесс завершен, прежде чем пытаться удалить.

Попробуйте запустить сценарий Python в командной строке администратора. Такую командную строку можно открыть, щелкнув правой кнопкой мыши значок командной строки cmd и запустив его от имени администратора.

Ошибка обычно возникает, когда вы пытаетесь выполнить задание от имени пользователя, который не обладает достаточными правами для выполнения действия.

Источник

Похоже, что обновление Windows 10 за ночь сломало Python. Просто попытка запустить python --version вернула ошибку «Отказано в доступе». Ни одно из трех обновлений; KB4507453, KB4506991 или KB4509096 выглядят так, как будто они являются виновником, но время возникновения проблемы подозрительно. Вместо того, чтобы возиться с откатом, я надеюсь, что есть более простое исправление, которое я пропускаю.

Разрешения на python — «-rwxr-xr-x», и я ничего не изменил, кроме того, чтобы позволить обновлению Windows перезагрузить компьютер после установки патчей прошлой ночью.

Согласно Системной информации, я работаю 10.0.18362

Следует также отметить, что это происходит независимо от того, выполняю ли я (пытаюсь) запустить Python из git-bash с использованием «запуска от имени администратора», и если я пытаюсь использовать PowerShell, он просто открывает хранилище Windows, как будто приложение не установлено, Я думаю, что по какой-то причине он не может видеть содержимое моей /c/Users/david/AppData/Local/Microsoft/WindowsApps/ папки.

Я также пытался переустановить Python 3.7.4, но это тоже не помогло. Есть ли что-то еще, на что я должен смотреть?

8 ответов

Лучший ответ

Насколько я могу судить, это было вызвано конфликтом с версией Python 3.7, которая была недавно добавлена в Windows Store. Похоже, что это добавило две «заглушки», называемые python.exe и python3.exe, в папку %USERPROFILE%AppDataLocalMicrosoftWindowsApps, и в моем случае это было вставлено перед записью моего существующего исполняемого файла Python в PATH .

Перемещение этой записи ниже правильной папки Python (частично) решило проблему.

Вторая часть его исправления состоит в том, чтобы ввести «управление псевдонимами выполнения приложения» в поисковую строку Windows и полностью отключить версии Python для магазинов.

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


82

notanumber
23 Июл 2019 в 16:03

Исследование

Все файлы в %USERPROFILE%AppDataLocalMicrosoftWindowsApps являются заполнителями, которые указывают на файлы, которые на самом деле находятся где-то в C:Program FilesWindowsApps, которым полностью запрещены разрешения.

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

«Похоже, они на самом деле не думали о том, как метод распространения искажает права доступа!»

Источник: Невозможно установить pylint в Git Bash в Windows (Windows магазин )

Разрешения по-королевски испорчены из-за метода распространения WindowsApps:

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь Интересно, что группа «Пользователи» может читать и выполнять файлы, также как и мой конкретный пользователь, но группа «Администраторы» может только перечислять содержимое папки по какой-то веселой непостижимой причине. И при попытке получить доступ к папке в проводнике, он отказывается даже показывать содержимое папки, поэтому в этом тоже есть что-то подозрительное.

Интересно, что хотя выполнение python в CMD работает просто отлично, папка «WindowsApps» не отображается при перечислении файлов в каталоге, в котором она находится, а попытка перейти в папку приводит к ошибке «Отказано в доступе» :

enter image description here

Попытка изменить разрешения требует сначала смены владельца, поэтому я сменил владельца на группу администраторов. После этого я попытался изменить разрешения для группы «Администраторы», чтобы включить «Полный доступ», но не смог изменить это, потому что «доступ запрещен» (да, Микро $, это то, что мы пытаемся изменить!).

enter image description here

Эта ошибка разрешения произошла для стольких файлов, что я использовал Alt + C, чтобы быстро нажать «Продолжить» в повторяющихся сообщениях, но это все равно заняло слишком много времени, поэтому я отменил процесс, в результате чего появилось это предупреждающее сообщение:

enter image description here

И теперь я не могу установить пользователя TrustedInstaller обратно в качестве владельца папки WindowsApps, поскольку он не отображается в списке Пользователи / Группы / Встроенные принципы безопасности / Другие объекты. *

enter image description here

* На самом деле, в соответствии с этим учебным пособием , вы можете вернуть владельца обратно в TrustedInstaller, введя NT ServiceTrustedInstaller в текстовое поле имени объекта.

Решение

Там нет решения. В основном мы полностью облажались. Классный ход, Microsoft.


16

Ryan
11 Авг 2019 в 07:13

Это не решение для PowerShell, но у меня была такая же проблема, за исключением MINGW64. Я обошел это, переключившись на Windows Subsystem для Linux (что я хотел сделать в любом случае) в качестве моего терминала, как правило, и в VSCode. Этот пост описывает это хорошо:

Как настроить VS Code (windows) для использования Ubuntu App в качестве терминала

В итоге:

1) Установите Ubuntu из Windows App Store

2) Измените bash по умолчанию с CMD -> wslconfig / setdefault Ubuntu

— для VSCode

3) Перезапустите VSCode

4) В VSCode замените «Terminal.integrated.shell.windows» на «C: WINDOWS System32 bash.exe» (подробности см. В посте выше)

Теперь работает без сбоев в VSCode и WSL (Bash на Ubuntu в Windows). Может быть, по крайней мере, временное решение для вас.


4

ThaJay
28 Ноя 2019 в 17:20

Может быть, вы можете попробовать открыть командную строку с правами администратора. (Запустить от имени администратора). Работает для меня большую часть времени.


0

Imtiyaz Shaikh
23 Июл 2019 в 10:31

Самое простое, что можно сделать, это изменить переменные окружения PATH и PYTHONPATH, чтобы убедиться, что папка, содержащая правильные двоичные файлы python, находится в локальной папке WindowsApp. Вы можете получить доступ к переменным среды, открыв панель управления и выполнив поиск «env»


0

Michael Bletzinger
16 Мар 2020 в 16:44

enter image description here

Добавление локального пути Python до того, как WindowsApps решит проблему.

enter image description here


0

Shirish
4 Май 2020 в 07:48

I’m using the killableprocess package (built on top of subprocess) for running processes
Whenever I run the «killableprocess.Popen(command)» piece of code in my script I get the following error:

File "killableprocess.py", line 157, in _execute_child
  winprocess.AssignProcessToJobObject(self._job, hp)
File "winprocess.py", line 37, in ErrCheckBool
  raise WinError()
WindowsError [error 5] Access is denied
Exception TypeError: "'NoneType' object is not callable" in <bound method AutoHANDLE.__del__ of <AutoHANDLE object at 0x025D42B0>> ignored

But when I run it from the python interactive console (python 2.6) it works fine.
That probably means there are permission issues when I run this from the script, but I don’t know how to solve them. I tried running the script from a cmd that I ran as administrator, but it didn’t help.
Tried looking for similar posts but didn’t find any good solution. Hope to find some help here
I’m running on Windows, specifically Windows 7 Ultimate x64, if it’s any help.

thanks

Nilesh's user avatar

Nilesh

20k16 gold badges87 silver badges141 bronze badges

asked Jun 9, 2010 at 11:42

Serg's user avatar

I solved a similar problem I had by switching to the process directory (I was trying to use inkscape) and it solved my problem

import subprocess
inkscape_dir=r"C:Program Files (x86)Inkscape"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
subprocess.Popen(['inkscape.exe',"-f",fname,"-e",fname_png])

Maybe switching to the process directory will work for you too.

answered Aug 20, 2011 at 9:06

tjb's user avatar

tjbtjb

11.3k9 gold badges68 silver badges89 bronze badges

What I found when running into this with the subprocess module is that the first entry in ‘args’ (the first parameter to subprocess.Popen()) needed to be just the executable name with no path and I needed to set executable in the argument list to the full path of my executable.

app = 'app.exe'
appPath = os.path.join(BIN_DIR, app)

commandLine = [app, 'arg1', 'arg2']
process = subprocess.Popen(commandLine, executable=appPath)

answered Dec 12, 2012 at 2:36

dash-tom-bang's user avatar

dash-tom-bangdash-tom-bang

17.1k5 gold badges45 silver badges61 bronze badges

2

Make sure that your paths include the name of the executable file (inkscape.exe)

answered Jun 27, 2013 at 2:03

dev4life's user avatar

dev4lifedev4life

10.6k6 gold badges57 silver badges71 bronze badges

1

Alternatively, if your module doesn’t work, you can use the «subprocess» module:

import subprocess, os, time

process = subprocess.Popen("somecommand", shell=True)
n = 0
while True:
    if not process.poll():
        print('The command is running...')
        if n >= 10:
            pid = process.pid
            os.kill(pid, 9) # 9 = SIGKILL
    else:
        print('The command is not running..')
    n += 1
    time.sleep(1) 

Moshe Slavin's user avatar

Moshe Slavin

5,0275 gold badges23 silver badges37 bronze badges

answered Jan 6, 2011 at 16:11

1

Do you specify full path to executable you are passing to Popen (the first item in argv)?

answered Jan 16, 2011 at 15:53

ulidtko's user avatar

ulidtkoulidtko

14.4k10 gold badges55 silver badges87 bronze badges

I’m using the killableprocess package (built on top of subprocess) for running processes
Whenever I run the «killableprocess.Popen(command)» piece of code in my script I get the following error:

File "killableprocess.py", line 157, in _execute_child
  winprocess.AssignProcessToJobObject(self._job, hp)
File "winprocess.py", line 37, in ErrCheckBool
  raise WinError()
WindowsError [error 5] Access is denied
Exception TypeError: "'NoneType' object is not callable" in <bound method AutoHANDLE.__del__ of <AutoHANDLE object at 0x025D42B0>> ignored

But when I run it from the python interactive console (python 2.6) it works fine.
That probably means there are permission issues when I run this from the script, but I don’t know how to solve them. I tried running the script from a cmd that I ran as administrator, but it didn’t help.
Tried looking for similar posts but didn’t find any good solution. Hope to find some help here
I’m running on Windows, specifically Windows 7 Ultimate x64, if it’s any help.

thanks

Nilesh's user avatar

Nilesh

20k16 gold badges87 silver badges141 bronze badges

asked Jun 9, 2010 at 11:42

Serg's user avatar

I solved a similar problem I had by switching to the process directory (I was trying to use inkscape) and it solved my problem

import subprocess
inkscape_dir=r"C:Program Files (x86)Inkscape"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
subprocess.Popen(['inkscape.exe',"-f",fname,"-e",fname_png])

Maybe switching to the process directory will work for you too.

answered Aug 20, 2011 at 9:06

tjb's user avatar

tjbtjb

11.3k9 gold badges68 silver badges89 bronze badges

What I found when running into this with the subprocess module is that the first entry in ‘args’ (the first parameter to subprocess.Popen()) needed to be just the executable name with no path and I needed to set executable in the argument list to the full path of my executable.

app = 'app.exe'
appPath = os.path.join(BIN_DIR, app)

commandLine = [app, 'arg1', 'arg2']
process = subprocess.Popen(commandLine, executable=appPath)

answered Dec 12, 2012 at 2:36

dash-tom-bang's user avatar

dash-tom-bangdash-tom-bang

17.1k5 gold badges45 silver badges61 bronze badges

2

Make sure that your paths include the name of the executable file (inkscape.exe)

answered Jun 27, 2013 at 2:03

dev4life's user avatar

dev4lifedev4life

10.6k6 gold badges57 silver badges71 bronze badges

1

Alternatively, if your module doesn’t work, you can use the «subprocess» module:

import subprocess, os, time

process = subprocess.Popen("somecommand", shell=True)
n = 0
while True:
    if not process.poll():
        print('The command is running...')
        if n >= 10:
            pid = process.pid
            os.kill(pid, 9) # 9 = SIGKILL
    else:
        print('The command is not running..')
    n += 1
    time.sleep(1) 

Moshe Slavin's user avatar

Moshe Slavin

5,0275 gold badges23 silver badges37 bronze badges

answered Jan 6, 2011 at 16:11

1

Do you specify full path to executable you are passing to Popen (the first item in argv)?

answered Jan 16, 2011 at 15:53

ulidtko's user avatar

ulidtkoulidtko

14.4k10 gold badges55 silver badges87 bronze badges

The “PermissionError: [winerror 5] access is denied or the Winerror 5 access is denied” issue is a very common error message that appears while using python on Windows. Almost all of the python developers encounter this error message on some stage of their coding.  This error might appear while they are importing python on some programming tool or it might appear while running a script. In this article, we have compiled some solutions to rectify the “[WinError 5] Access is denied” error completely from Python.

[winerror 5] access is denied Error on Python

Error Message

What Causes the Access is Denied Error?

The main reason behind the error of access denial is that you are only allowed to run programs and not directories. This error will occur if we try to run a directory.

This error can occur due to incorrect syntax of the code or any older version of the Python.

What to do if you get the “winerror 5 access is denied” Message in CMD or Python?

1. Solution 1: Run as Administrator

If you are trying to install python directories from your command prompt and the “winerror 5 access is denied” error appears then there is nothing to worry about. This error can be solved very easily and quickly. Just follow the steps below to resolve this issue

  1. Click on the search button in the taskbar and type “cmd”. Right-click on the Command Prompt and select Run as Administrator.
    Running Command Prompt as Administrator
    Command Prompt
  2. Write the following command and press “Enter”.
    pip install pydirectory

    Running the "pip install pydirectory" command in the command Prompt

    Command
  3. Check if this error appears again.

2.Solution 2: Set Permission

Sometimes syntax used for different versions of python can be the reason behind this error. For example, if you wanted to set permission for python 2, the command used was as follows

os.chmod('spam.txt', 777)

This will be considered wrong if you are using python 3 because this syntax is outdated and will lead to a syntax error. The syntax used to access permission in python 3 is a little bit different. The command for python 3 is as follows.

os.chmod('spam.txt', 0o777)

3. Solution 3: Give Path To The Image

If you are opening an image in your code, this error might occur because of the wrong syntax. You will get this permission denial if you write the code in the following syntax

img = cv2.imread('G:/project/OCR/FDA.png')

This issue an be resolved by adding an “r” before the path of the image. For example, the correct syntax of the code which will not cause any error will be as follows.

img = cv2.imread(r'G:/project/OCR/FDA.png')

4. Solution 4: Update Python

Sometimes this error arises due to an old version of Python. The latest version of python has all the updates and fixes of the bugs that were present in the older versions. If you are using version 3.7.2 of python then make sure you update it to version 3.7.3 because the older version contains some bugs which might be the reason behind this error.

If you need further assistance, contact here. You can also seek help from the official Python page.

Вариант б) Установите в свой домашний каталог:

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

Нам действительно следует прекратить рекомендовать использование sudo with pip install . Лучше сначала попробовать pip install —user . Если это не удается, взгляните на верхний пост здесь .

Причина, по которой вы не должны использовать sudo заключается в следующем:

Когда вы запускаете pip с sudo , вы запускаете произвольный код Python из Интернета как пользователь root, что представляет собой довольно большой риск для безопасности. Если кто-то разместит вредоносный проект на PyPI и вы его установите, вы дадите злоумышленнику root-доступ к своей машине.

Вы пытаетесь установить пакет по общесистемному пути, не имея на это разрешения.

В общем, вы можете использовать sudo для временного получения разрешений суперпользователя под вашу ответственность , чтобы установить пакет по общесистемному пути:

Узнайте больше sudo здесь .

На самом деле, это плохая идея, и для нее нет хорошего варианта использования, см. Комментарий @ wim.

Если вы не хотите вносить общесистемные изменения, вы можете установить пакет на свой путь для каждого пользователя, используя —user флаг.

Все, что нужно, это:

Наконец, для еще более детального контроля вы также можете использовать virtualenv , который может быть лучшим решением для среды разработки, особенно если вы работаете над несколькими проектами. и хотите отслеживать зависимости каждого из них.

После активации вашего virtualenv с помощью

следующая команда установит пакет внутри virtualenv (а не по общесистемному пути):

«В разрешении отказано» при попытке запустить Python в Windows 10

Похоже, что обновление Windows 10 в одночасье сломало Python. Просто попытка запустить python —version вернула ошибку «Permission Denied». Ни одного из трех обновлений; KB4507453, KB4506991 или KB4509096 выглядят так, как будто они виноваты, но время возникновения проблемы вызывает подозрение. Вместо того, чтобы возиться с откатом, я надеюсь, что есть более простое исправление, которое мне не хватает.

Разрешения на python — «-rwxr-xr-x», и я ничего не менял, кроме разрешения перезагрузки компьютера с обновлением Windows после установки вчерашних патчей.

Согласно информации о системе, я использую 10.0.18362.

Следует также отметить, что это происходит независимо от того, пытаюсь ли я запустить Python из git-bash, используя «запуск от имени администратора», или нет, и если я попытаюсь использовать PowerShell, он просто откроет магазин Windows, как если бы приложение не было установлено, поэтому Я думаю, он /c/Users/david/AppData/Local/Microsoft/WindowsApps/ по какой-то причине не видит содержимое моей папки.

Я также пытался переустановить Python 3.7.4, но это тоже не помогло. Есть ли еще что-нибудь, на что мне следует обратить внимание?

Насколько я могу судить, это было вызвано конфликтом с версией Python 3.7, которая недавно была добавлена ​​в Магазин Windows. Похоже, это добавило в %USERPROFILE%AppDataLocalMicrosoftWindowsApps папку две «заглушки», называемые python.exe и python3.exe , и в моем случае это было вставлено перед записью моего существующего исполняемого файла Python в PATH .

Перемещение этой записи под правильную папку Python (частично) устранило проблему.

Вторая часть исправления — это ввести manage app execution aliases в строку поиска Windows и полностью отключить версии Python из магазина.

управлять псевдонимами выполнения приложений

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

Исследовать

Все файлы %USERPROFILE%AppDataLocalMicrosoftWindowsApps являются заполнителями, которые указывают на файлы, которые на самом деле где-то находятся C:Program FilesWindowsApps , и для которых полностью отказано в разрешениях.

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

«Seems like they didn’t really think about the distribution method screwing with permissions!»

Разрешения сильно испорчены из-за метода распространения WindowsApps:

введите описание изображения здесьвведите описание изображения здесьвведите описание изображения здесь Интересно, что там говорится, что группа «Пользователи» может читать и выполнять файлы, а также мой конкретный пользователь, но группа «Администраторы» может только выводить список содержимого папки по какой-то до смешного непостижимой причине. И при попытке доступа к папке в проводнике он отказывается даже отображать содержимое папки, так что в этом тоже есть что-то подозрительное.

Интересно, что даже при том, что выполнение python в CMD работает нормально, папка «WindowsApps» не отображается при перечислении файлов в каталоге, в котором она находится, и попытка перейти в папку генерирует ошибку «Permission denied»:

введите описание изображения здесь

Чтобы изменить разрешения, сначала нужно сменить владельца, поэтому я сменил владельца на группу «Администраторы». После этого я попытался изменить разрешения для группы «Администраторы», чтобы включить полный доступ, но это не удалось изменить, потому что «доступ был запрещен» (да, Micro $ ucks, это то, что мы пытаемся изменить!).

введите описание изображения здесь

Эта ошибка разрешения произошла для такого количества файлов, что я использовал Alt + C, чтобы быстро щелкнуть «Продолжить» в повторяющихся сообщениях, но это все равно заняло слишком много времени, поэтому я отменил процесс, в результате чего появилось это предупреждающее сообщение:

введите описание изображения здесь

И теперь я не могу вернуть пользователя TrustedInstaller в качестве владельца папки WindowsApps, потому что он не отображается в списке пользователей / групп / встроенных принципов безопасности / других объектов. *

введите описание изображения здесь

* Фактически, согласно этому руководству , вы можете снова поменять владельца на TrustedInstaller, введя NT ServiceTrustedInstaller текст в текстовое поле имени объекта.

Есть скрипт python «test.py» с следующим кодом:

python test.py запускается, и выводит текст в консоль

при запуске скрипта «как исполняемого» ./test.py Выводит:

Вопрос: что я делаю не так?

Чего? Это кто? Я знаю только таких:

Пиши либо /usr/bin/python либо /usr/bin/env python

#!/usr/bin/python

Исправил, ошибка следующая:

Так ты ещё и под offtop-ом. Ну так хоть notepad++ поставь для приличия. Он тебе разъяснит, где ты неправ.

/usr/bin: bad interpriter: Permission denied

/usr/bin — это папка, она не может быть выполнена, об этом система тебе и сообщает. права доступа к твоему скрипту тут ни при чём.

по второй ошибке: перевод строки в линуксе — это символ с кодом 10, а не 13, как у тебя (в венде), который воспринимается ядром как продолжение имени интерпретатора вместо конца строки.

Судя по тегам он не под оффтопом, просто файл создан там каким-то клоуном, который где-то читал о шебанге. Оп, тебе надо перекодировать концы строк в исходнике с dos на unix — либо редактором, который это умеет, либо в командной строке через dos2unix (iirc).

f22

f22

Codeby Team


  • #7

При попытки использовать команду pip install colorama выдаётся ошибка : «Отказано в доступе» .
C:WINDOWSsystem32>pip install colorama
Отказано в доступе.

Найдите папку, в которой лежит ваш исполняемый python экзешник
Скорее всего это:
C:Users<Имя пользователя>AppDataLocalProgramsPythonPython39python.exe

Откройте cmd.exe от имени администратора, перейдите в эту папку
cd C:Users<Имя пользователя>AppDataLocalProgramsPythonPython39

Или с зажатой клавишей Shift нажмите на неё в проводнике ->Открыть окно команд здесь или Открыть окно PowerShell здесь

1614782773265.png

Дальше запустите pip из под python

Последнее редактирование: 03.03.2021

Taking a shot in the dark here and hoping someone can point me in the right direction as to why I’m getting this error. I have used this same script in the past without issue so I’m completely lost as to what happened. Any help/suggestions would be greatly appreciated.

from requests_html import HTMLSession

link = 'https://www.denvergov.org/property/realproperty/summary/160820474'
session = HTMLSession()
url = session.get(link)
print(url)

<Response [200]>

url.html.render()

Traceback (most recent call last):
  File "C:/Users/Nick/gfddfsf.py", line 9, in <module>
    url.html.render()
  File "C:UsersNicklibsite-packagesrequests_html.py", line 572, in render
    self.session.browser  # Automatycally create a event loop and browser
  File "C:UsersNicklibsite-packagesrequests_html.py", line 680, in browser
    self._browser = self.loop.run_until_complete(pyppeteer.launch(headless=True, args=['--no-sandbox']))
  File "C:UsersNicklibasynciobase_events.py", line 467, in run_until_complete
    return future.result()
  File "C:UsersNicklibsite-packagespyppeteerlauncher.py", line 311, in launch
    return await Launcher(options, **kwargs).launch()
  File "C:UsersNicklibsite-packagespyppeteerlauncher.py", line 169, in launch
    **options,
  File "C:UsersNicklibsubprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:UsersNicklibsubprocess.py", line 997, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Access is denied

Понравилась статья? Поделить с друзьями:
  • Python не устанавливается windows 7 service pack 1 установлен
  • Python не ставится на windows 7 sp1
  • Python не запускается через командную строку windows 10
  • Python на windows как начать пользоваться
  • Python на windows 10 как программировать