【发布时间】: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