首页 > 解决方案 > PermissionError:[Errno 13] 权限被拒绝:PosixPath('...')

问题描述

  1. 对于上下文,我在MacOS Big Sur 11.0.1上运行它,这里的相关变量是:
  1. 我正在编写一个使用SeleniumChromedriver的网络自动化脚本。我使用venvpip3在项目文件夹中本地安装;虚拟环境当前处于活动状态(使用source bin/activate)。在程序中,我使用pathlib来获取 chromedriver 的路径 我在实例化时将 current_path = pathlib.Path.cwd()其交给Selenium 的 webdriver 。chromedriver_path = current_path / 'lib/python3.8/site-packages/chromedriver'

  2. 该程序立即引发此错误和回溯消息:

  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 72, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 1702, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: PosixPath('/Users/nick/Developer/Ubiquiti-AP-Automation/lib/python3.8/site-packages/chromedriver')
  1. 这会导致次要错误和回溯消息:

Traceback (most recent call last):
  File "main.py", line 130, in <module>
    main()
  File "main.py", line 31, in main
    driver = webdriver.Chrome(executable_path = chromedriver_path)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 86, in start
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
  1. chmod -R 777 .在这个项目文件的根目录中运行Ubiquiti-AP-Automation,并仔细检查了子文件夹中的每个文件是否具有所有者、组和其他的完整读取、写入和执行权限,以防万一。这是我ls -l在根文件夹中运行时的输出:
total 24
drwxrwxrwx  13 nick  staff   416 Nov 17 18:18 bin
drwxrwxrwx   2 nick  staff    64 Nov 16 14:48 include
drwxrwxrwx   4 nick  staff   128 Nov 18 13:56 lib
-rwxrwxrwx@  1 nick  staff  5515 Nov 18 15:18 main.py
-rwxrwxrwx   1 nick  staff   114 Nov 16 14:48 pyvenv.cfg
  1. 我最好的猜测是pathlib没有正确的权限,即使它有???python 脚本是否具有与运行脚本的人不同的权限?在过去的 3 天里,我在 StackOverflow 上尝试了大多数(如果不是全部)针对此问题的最佳答案。显然我错过了一些东西,但我不确定是什么 - 任何见解都会非常感激!谢谢!

标签: pythonselenium-chromedriverfile-permissionspython-venvpathlib

解决方案


推荐阅读