Python scipy imshow与El Capitan SIP和/var/文件夹冲突/
我遇到了一些权限问题,我确信有一个快速解决方案,但我找不到它 设置:Mac,OSX:El Capitan,Anaconda,Python3.5.1 从bash(使预览成为默认查看器):Python scipy imshow与El Capitan SIP和/var/文件夹冲突/,python,scipy,osx-elcapitan,imshow,Python,Scipy,Osx Elcapitan,Imshow,我遇到了一些权限问题,我确信有一个快速解决方案,但我找不到它 设置:Mac,OSX:El Capitan,Anaconda,Python3.5.1 从bash(使预览成为默认查看器): export SCIPY\u PIL\u IMAGE\u VIEWER=/Applications/Preview.app/Contents/MacOS/Preview 来自口译员: import scipy.misc as mi im1 = mi.imread('local_filename.png') mi
export SCIPY\u PIL\u IMAGE\u VIEWER=/Applications/Preview.app/Contents/MacOS/Preview
来自口译员:
import scipy.misc as mi
im1 = mi.imread('local_filename.png')
mi.imshow(im1)
预览时出现以下错误:无法打开文件“tmph_9q7lwu.png”,因为您没有查看该文件的权限
此文件的路径位于:/var/folders/w4/wrnzzzgd41d7064lx64nc10h0000gn/T中/
它的权限是:-rw-----,预览应用程序的UID:501(我自己)
我觉得这是El Capitan SIP(系统完整性保护)的问题,这就引出了我的问题:
谢谢 我发现了一个可行的小技巧,有两个步骤: 在pilutil.py中,编辑行381+(在def imshow下) 第一步。预览需要时间延迟(0.05太快)。否则,取消链接将在预览正确显示文件之前删除该文件 第二步。使用
open
而不是$SCIPY\u PIL\u IMAGE\u查看器
引用预览应用程序可以工作。后一种方法有一个更普遍的错误
不过,还有一个更大的问题,我可能会在另一篇文章中提出。从bash内部:
/Applications/Preview.app/Contents/MacOS/Preview /path/to/file
这将导致预览打开文件。但它会引发权限错误,似乎与文件位于何处无关。尝试从/var/打开文件的原因是什么?文件不在/var/?中时是否打开,以便在调用imshow()时,它将im1对象转换为png图像,然后将其存储在临时文件中。然后,它将该临时文件传递给指定的“查看器”,在本例中,我对其进行了预览。但是,由于某种原因,Preview无法打开它,抛出了上面提到的错误。当我从/var/folders/手动打开这些文件时,它们可以很好地打开。有趣的是,当使用外部应用程序查看时,我没有注意到临时文件。我将进一步考虑可能导致权限错误的原因。@MaxwellGrady是的,这很奇怪,如果在bash中执行
/path/to/preview/executable/path/to/temp/file
,它会抛出权限错误。但是如果你打开/path/to/temp/file。
/Applications/Preview.app/Contents/MacOS/Preview /path/to/file