2021年3月11日星期四

File permission error in Xcode using python

I am running a python/kivy compiled app in Xcode, but it raises an error when I try to save some audio bytes to an audio file. I have done this successfully in my IDE, so I don't understand why it isn't working in Xcode.

Here's the concerned section of my code:

test = mic_callback()  mic = get_input(callback=test.record_audio)  mic.start()  time.sleep(5)  mic.stop()  recorded_frames = audio.get_audio()           sample_rate = 44100      wf = wave.open("audio.wav", "wb")  # create an audio file object in 'write bytes' mode (as frames file stores audio in bytes)          wf.setnchannels(2)  # set the channels in the audio file          wf.setsampwidth(2)  # set the size of each sample in bytes (2 bytes in the case as each sample is 16 bits)          wf.setframerate(sample_rate)  # set the frame rate          wf.writeframes(b"".join([]))  

Here's the error message:

[INFO   ] [Base        ] Leaving application in progress...   Traceback (most recent call last):     File "/Users/orlandoalexander/recycle-ios/YourApp/main.py", line 262, in <module>     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/app.py", line 950, in run       runTouchApp()     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 582, in runTouchApp       EventLoop.mainloop()     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 347, in mainloop       self.idle()     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 391, in idle       self.dispatch_input()     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 342, in dispatch_input       post_dispatch_input(*pop(0))     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 248, in post_dispatch_input       listener.dispatch('on_motion', etype, me)     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/core/window/__init__.py", line 1412, in on_motion       self.dispatch('on_touch_down', me)     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/core/window/__init__.py", line 1428, in on_touch_down       if w.dispatch('on_touch_down', touch):     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/screenmanager.py", line 1198, in on_touch_down       return super(ScreenManager, self).on_touch_down(touch)     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down       if child.dispatch('on_touch_down', touch):     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/relativelayout.py", line 297, in on_touch_down       ret = super(RelativeLayout, self).on_touch_down(touch)     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down       if child.dispatch('on_touch_down', touch):     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down       if child.dispatch('on_touch_down', touch):     File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/behaviors/button.py", line 151, in on_touch_down       self.dispatch('on_press')     File "kivy/_event.pyx", line 720, in kivy._event.EventDispatcher.dispatch     File "kivy/_event.pyx", line 1263, in kivy._event.EventObservers.dispatch     File "kivy/_event.pyx", line 1147, in kivy._event.EventObservers._dispatch     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/lang/builder.py", line 57, in custom_callback       exec(__kvlang__.co_value, idmap)     File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/YourApp/layout.kv", line 123, in <module>       root.on_press()     File "/Users/orlandoalexander/recycle-ios/YourApp/main.py", line 78, in on_press   PermissionError: [Errno 1] Operation not permitted: 'myfile.wav'  2021-03-12 01:00:11.424098+0000 recycle[2718:198076] Application quit abnormally!  2021-03-12 01:00:11.497647+0000 recycle[2718:198076] Leaving  

Why is a Permission Error raised when I try to access the 'audio.wav' file?

https://stackoverflow.com/questions/66592774/file-permission-error-in-xcode-using-python March 12, 2021 at 09:08AM

没有评论:

发表评论