Limitations due to iOS
I am at home in the Linux world. Playing around with Pythonista gives the Impression that I have to live with a number of limitations due to iOS, see example belog. My question: where can i find a list of Pythonista/iOS limitations?
Edit: Adding list of known limits compared to Linux:
- No fork/exec for new processes. Impacts subprocess module
- Due to missing fork: No full cleanup of process resources (memory, threads, file handles, ...)
- No file access outside of application directory
- No /dev/null and other special files.
- Limited processing power of devices (compared to typical PC/Mac)
- Process usually is stopped/killed after a while. Workaround: see http://omz-forums.appspot.com/pythonista/post/4981737633349632#post-5328325388009472
Example for limitation:
>>> import subprocess >>> subprocess.call(["ls", "-l"]) Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/var/mobile/Containers/Bundle/Application/8C59C68D-71BF-4CBB-90F8-373A1752DEE1/Pythonista.app/pylib/subprocess.py", line 524, in call return Popen(*popenargs, **kwargs).wait() File "/private/var/mobile/Containers/Bundle/Application/8C59C68D-71BF-4CBB-90F8-373A1752DEE1/Pythonista.app/pylib/subprocess.py", line 711, in __init__ errread, errwrite) File "/private/var/mobile/Containers/Bundle/Application/8C59C68D-71BF-4CBB-90F8-373A1752DEE1/Pythonista.app/pylib/subprocess.py", line 1205, in _execute_child self.pid = os.fork() OSError: [Errno 1] Operation not permitted
Jailbreaking can remove some of them them, and they're pretty much all mentioned in [the documentation], just not as a list. I don't reccommend jailbreaking, though.
The main limitations are the app sandbox (except for things like
/dev/nulland a few others, you cannot access files outside of the app's own folder) and the fact that you can't create any kind of process from the app. This means no forking and no execution of native code. iOS devices also have less processing power than the average computer, which is visible e. g. when importing
@Webmaster4o: I have no intention to do jailbreaking. My current problem is that I just dont know enough about iOS to understand the limitations that I have in Pythonista. Specific hints are therefore more than welcome.
@dgelessus: Thanks for the information. Adding this to the list in the original post.
Did you know that an iPad has more computing power than a CrayXMP/48 (fastest computer in 1986), also it has more RAM (64MB), and it is considerably cheaper ($15 Mio) ? Anyway, the fact that iOS device performance is low compared to typical PCs is the reason why I started experimenting with Pyro4.
And your average smartphone has more computing power than the onboard computer of Apollo 11.
Apple Watch has much more processing power than Apollo 11.