【问题标题】:PermissionError: [Errno 1] Operation not permitted after macOS Catalina UpdatePermissionError: [Errno 1] macOS Catalina 更新后不允许操作
【发布时间】:2020-02-17 03:40:06
【问题描述】:

安装 macOS 10.15 Catalina 后,我在 Python 3.x 中遇到以下简单文件和目录操作错误:“PermissionError: [Errno 1] Operation not allowed”

一些操作会触发此错误,包括使用 open(...,'rb')、listdir() 和 getcwd() 从 cwd 打开现有文件。

更新到 Catalina 并发现 Anaconda 和 Spyder 无法打开后,我阅读了一些问题。我删除了 Anaconda 并使用 .sh 终端安装程序将其重新安装在 /Users/myname/ 中。 Conda 和 Spyder 现已打开,但我仍然无法执行上述操作。

这行得通:

os.chdir(basedir)

这些不起作用并抛出上面的错误:

os.getcwd()
Traceback (most recent call last):

  File "<ipython-input-3-a78b1fb2bab9>", line 1, in <module>
    os.getcwd()

PermissionError: [Errno 1] Operation not permitted

os.listdir()
Traceback (most recent call last):

  File "<ipython-input-2-67fdccf289bf>", line 1, in <module>
    os.listdir()

PermissionError: [Errno 1] Operation not permitted

f=open([pre-existing file],'rb')

但是,这不会引发错误:

f=open('f1.txt','wb')
f.close()
f=open('f1.txt','rb')

我已经尝试为 Anaconda 和 Spyder 设置全盘访问权限。

【问题讨论】:

  • 您能否在终端中尝试以下方法来测试最初不起作用的方法:sudo python yourscript.py
  • 好的,这似乎可行,但仅在终端中而不在 IDE 中。终端提示我输入密码,但随后我可以使用 print(os.listdir()) 打印目录列表。当我在 IDE 中尝试这个时,它仍然给我错误。
  • 我只是尝试将文件和文件夹权限更改为所有人的读写权限,但这也不起作用。
  • 如果您的代码在有/没有sudo 权限的情况下从终端运行,是否可以工作?有/没有sudo 权限的终端呢?每种情况下的错误消息是什么?
  • IDE 可能在限制其访问的沙箱中运行。 Catalina 提高了安全性。

标签: python permissions macos-catalina


【解决方案1】:

转到系统偏好设置->安全和隐私。

Now look at the following image,见标签 1

在左侧单击“全盘访问”,参见标签 2

现在点击左下方的锁形图标并输入密码进行更改,参见标签 3

现在点击+号按钮,见标签4

从应用程序 -> 实用程序浏览终端应用程序

现在终端添加了权限。

完成。

【讨论】:

  • 这应该是公认的答案,谢谢!
【解决方案2】:

如果您像我一样在使用 Workflows / Automator 脚本时遇到此问题,以下可能会有所帮助:

  1. 打开System Preferences -> Security &amp; Privacy -> Privacy
  2. 单击左下角的锁并输入密码以允许更改
  3. 在“全盘访问”下单击“+”号
  4. 添加Finder(要快速找到它,请按CMD + Shift + G 并输入/System/Library/CoreServices/Finder.app

这应该使所有工作流程(再次)正常工作!

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,进入系统偏好设置,在安全和隐私 > 开发者工具标签下,添加了Anaconda程序“允许下面的应用程序在本地运行软件......”并重新启动 anaconda 程序,它工作。

    编辑: 自从我尝试了这个解决方案后,我观察到的另一件事是,它仅在我从终端作为 bash 命令运行 spyder 时才有效。

    【讨论】:

      【解决方案4】:

      访问文件夹和文件。

      1. 转到系统偏好设置
      2. 转到安全和隐私。
      3. 在隐私选项卡中,选择左侧对话框中的文件和文件夹。 解锁进行更改并选择终端。

      【讨论】:

        【解决方案5】:

        已解决:

        我做了什么我在我的用户文件夹中创建了一个新文件夹,我称之为“dev”并将我的所有文件和文件夹移到那里,然后权限错误消失了。

        希望这对你也有帮助。

        【讨论】:

        • 其他答案中肯定有更好的方法
        【解决方案6】:

        我在 PyCharm 上遇到了类似的问题,无法安装任何软件包。在文件 pyvenv.cfg 上运行 chown 并设置与在解决问题之前为该文件设置的用户相同的用户。

        【讨论】:

          【解决方案7】:

          在全盘访问部分添加 Intellij 或其他一些 IDE 就可以了。 更多信息:https://support.apple.com/en-us/HT210595

          【讨论】:

            【解决方案8】:

            我遇到此错误是因为我试图在已删除的目录中启动 http 服务器。

            【讨论】:

              猜你喜欢
              • 2021-02-18
              • 2020-11-02
              • 1970-01-01
              • 1970-01-01
              • 2017-09-21
              • 2018-04-25
              • 1970-01-01
              • 1970-01-01
              • 2018-10-20
              相关资源
              最近更新 更多