Can';t使用python中的kivy在iOS上编写文件

Can';t使用python中的kivy在iOS上编写文件,ios,xcode,python-2.7,kivy,Ios,Xcode,Python 2.7,Kivy,我正在编写一个应用程序,并尝试使用kivy的garden library的mapview模块,在mapview的下载模块尝试编写它下载的地图块之前,一切都正常。它吐出:Downloader错误:IOError(1,‘不允许操作’) 它试图写入的文件是:'cache/26A751794_11_1041_1360.png',该文件将位于应用程序目录的cache文件夹中(我假设)。我还尝试将缓存文件夹从cache更改为/Library/Caches(如中所做),但我在那里也遇到了权限错误 使mapvi

我正在编写一个应用程序,并尝试使用kivy的garden library的mapview模块,在mapview的下载模块尝试编写它下载的地图块之前,一切都正常。它吐出:
Downloader错误:IOError(1,‘不允许操作’)
它试图写入的文件是:
'cache/26A751794_11_1041_1360.png'
,该文件将位于应用程序目录的
cache
文件夹中(我假设)。我还尝试将缓存文件夹从
cache
更改为
/Library/Caches
(如中所做),但我在那里也遇到了权限错误


使mapview在iOS上工作的
CACHE\u DIR
文件夹的正确字符串是什么?或者也许我需要在Xcode中设置一些东西才能使其正常工作?

我在Albert Gao的帖子中提供了一个很好的提示来解决这个问题。我必须对mapview模块的
\uuuu init\uuuuu.py
脚本进行非常简单的修改。缓存的默认文件夹在ios上不起作用。以下是
\uuuu init\uuuu.py
之前的代码:

CACHE_DIR = "cache"
以下是修复后在iOS上工作的代码:

from kivy.utils import platform
from kivy.app import App
import os.path
if platform == 'ios': # Erik Sandberg fix 10/14/2018
    root_folder = App().user_data_dir
    CACHE_DIR = os.path.join(root_folder, 'cache')
    cache_folder = os.path.join(root_folder, 'cache')
    CACHE_DIR = cache_folder
    #CACHE_DIR = "Library/Caches"
else:
    CACHE_DIR = "cache"
推理:它试图创建“缓存”目录的默认文件夹实际上不是主应用程序运行的地方。主应用程序确实是从
app()获取的路径运行的。user\u data\u dir
。iOS不允许我在一个文件夹中创建文件,而这个文件夹不在主应用程序真正运行的地方


我希望这能帮助其他遇到类似问题的人

有一段时间了,但在iOS上,我认为它是
库/缓存
,没有前导斜杠。我尝试过,但该目录在我的项目文件夹中不存在。当使用python的
os.makedirs
命令时,尝试创建它会再次导致IO权限错误