Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
pip install gestures, WKWebView, UI animations and more
-
This looks great! But I can't seem to get the install to work. This is what I get:
pip install pythonista-gestures Querying PyPI ... Downloading package ... Opening: https://files.pythonhosted.org/packages/e0/76/e1766485ab9b521d9d4c304854f479b87db6df350dc54996aa5c71e4d608/pythonista_gestures-1.0-py2.py3-none-any.whl Save as: /private/var/mobile/Containers/Data/Application/1596E9F5-6DC7-4159-8555-9611A7AEB2A8/tmp//pythonista_gestures-1.0-py2.py3-none-any.whl (10408 bytes) 10408 [100.00%] Installing wheel: pythonista_gestures-1.0-py2.py3-none-any.whl... <class 'UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xe2 in position 1125: ordinal not in range(128)
-
-
@becktrex , encoding error could point to some py2 issue, not sure if that helps any.
-
Error matches a stash issue.
-
@becktrex, are you running the latest stash? (selfupdate)
-
would appreciate any hints on how to debug this?
In general,
stashconf py_traceback 1
,stashconf py_pdb 1
andpip --verbose install pythonista-gestures
.I just tried and could not replicate the error (it installs successfully).
Error matches a stash issue.
I think that one is a different issue. StaSh
pip
has two installers: one for source install (viasetup.py
) and one for wheels (.whl
). The linked issue was regarding the source install, while this issue is with wheel installations. Also, I think we already fixed the linked issue, but I am not sure... -
@becktrex, if pip will not co-operate, you can just as well open stash and:
cd site-packages wget https://raw.githubusercontent.com/mikaelho/pythonista-gestures/master/gestures.py
-
StaSh v0.7.2 on python 3.6.1
pythonista V. 3.4 (330025)
iphone 6S+
iOS 13.3.1
StaSh "selfupdate" returns "Already at latest version"I've tried this over the last couple of days. Restarted Pythonista, rebooted iphone, etc. with the same result.
I tried pip install again with the above "extras", no joy, results below.
wget from the site-packages directory worked fine.
time to play with my new ̶t̶o̶y̶s̶ tools[~/Documents]$ stashconf py_traceback 1 [~/Documents]$ stashconf py_pdb 1 [~/Documents]$ pip --verbose install pythonista-gestures Querying PyPI ... Using pythonista-gestures==1.0... A binary distribution is available and will be used. Downloading package ... Opening: https://files.pythonhosted.org/packages/e0/76/e1766485ab9b521d9d4c304854f479b87db6df350dc54996aa5c71e4d608/pythonista_gestures-1.0-py2.py3-none-any.whl Save as: /private/var/mobile/Containers/Data/Application/1596E9F5-6DC7-4159-8555-9611A7AEB2A8/tmp//pythonista_gestures-1.0-py2.py3-none-any.whl (10408 bytes) 10408 [100.00%] Installing wheel: pythonista_gestures-1.0-py2.py3-none-any.whl... Extracting wheel.. Extraction finished, running handlers... Running handler 'WHEEL information checker'... Wheel generated by: flit 2.2.0 Running handler 'dependency handler'... Cleaning up... <class 'UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xe2 in position 1125: ordinal not in range(128) Traceback (most recent call last): File "/private/var/mobile/Containers/Shared/AppGroup/16663993-01D5-4358-99D0-C11426AFFF9B/Pythonista3/Documents/site-packages/stash/system/shruntime.py", line 547, in exec_py_file exec(code, namespace, namespace) File "site-packages/stash/bin/pip.py", line 1492, in <module> repository.install(pkg_name, ver_spec, dist=dist) File "site-packages/stash/bin/pip.py", line 1085, in install self._install(pkg_name, pkg_info, archive_filename, dependency_dist=dist) File "site-packages/stash/bin/pip.py", line 849, in _install files_installed, dependencies = wheel.install(self.site_packages) File "/private/var/mobile/Containers/Shared/AppGroup/16663993-01D5-4358-99D0-C11426AFFF9B/Pythonista3/Documents/site-packages/stash/lib/stashutils/wheels.py", line 385, in install tfi = handler.handle_install(tp, targetdir) File "/private/var/mobile/Containers/Shared/AppGroup/16663993-01D5-4358-99D0-C11426AFFF9B/Pythonista3/Documents/site-packages/stash/lib/stashutils/wheels.py", line 286, in handle_install dependencies = self.read_dependencies_from_METADATA(metadatap) File "/private/var/mobile/Containers/Shared/AppGroup/16663993-01D5-4358-99D0-C11426AFFF9B/Pythonista3/Documents/site-packages/stash/lib/stashutils/wheels.py", line 310, in read_dependencies_from_METADATA for line in fin: File "/var/containers/Bundle/Application/FC2E1425-424E-4F22-88E8-DDBC98DBC701/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/encodings/ascii.py", line 27, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1125: ordinal not in range(128) > /var/containers/Bundle/Application/FC2E1425-424E-4F22-88E8-DDBC98DBC701/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/encodings/ascii.py(27)decode() -> return codecs.ascii_decode(input, self.errors)[0] (Pdb)
-
After looking into this issue for a bit, it seems like the same bug as in Issue #364. This should have been fixed 12 months ago, just a month after the latest version bump for
master
. So it is possible that you have a version installed before that version bump.So, since it seems like the
master
branch became a bit outdated,I just merged 152 commits fromdev
intomaster
. This should include the fix as well as a version bump, so could you please try anotherselfupdate
? -
That did the trick.
selfupdate was successfull."pip install pythonista-gestures" installed the first time.
-
@bennr01, a big thank you! for all you do to keep us stashed & pipped.
-
-
@mikael Just a tiny correction, please correct me if I’m wrong. In the multipeer readme it says one should use <pip install multipeer> to install your module, which doesn’t work. You probably meant <pip install pythonista-multipeer>.
-
@Drizzel, thank you, fixed. Multipeer was my first PyPi exercise, and my naming convention was still evolving – meaning, I did not yet know how to give a module a different name in site-packages and PyPi. :-)
-
Hi, I tested one demo code in readme of pythonista-wkwebview
class MagicWebView(WKWebView): def on_magic(self, message): print('WKWebView magic ' + message) html = ''' <body> <button onclick="window.webkit.messageHandlers.magic.postMessage(\'spell\')"> Cast a spell </button> </body> ''' v = MagicWebView() v.load_html(html)
Well it works good, but when I try to load html file, the 'on_magic' doesn't work, here's my code in py file
class MagicWebView(WKWebView): def on_magic(self, message): print('WKWebView magic ' + message) v = MagicWebView() v.present() # v.load_html(html) v.load_url('test.html', no_cache=False, timeout=5) v.clear_cache()
I don't know how to fix it
-
@Anxietier try
import os w = WKWebView() f = os.path.abspath('test.html') print(f) w.load_url(f) w.present()
-
@Anxietier, I see the online documentation covers this poorly. Here’s the method docstring:
Loads the contents of the given url asynchronously.
If the url starts with
file://
, loads a local file. If the remaining url starts with/
, path starts from Pythonista root.For remote (non-file) requests, there are two additional options:
- Set
no_cache
toTrue
to skip the local cache, default isFalse
- Set
timeout
to a specific timeout value, default is 10 (seconds)
- Set
-
@Anxietier, you can get this and similar documentation on other methods using the
help
function, e.g. in Pythonista console:>>> import wkwebview >>> help(wkwebview.WKWebView.load_url)
-
@cvp
thanks, but it seems doesn’t work, here’s my test codefile_name = 'test.copy(2).html' file_abs_path = os.path.abspath(file_name) url_file_name = 'file://' + file_name url_file_abs_path = 'file://' + file_abs_path with open(file_name, 'r', encoding='utf8') as f: html = ''.join(f.readlines()) v = MagicWebView() v.present() # v.load_html(html) # can load but button doesn't work # v.load_url(file_name, no_cache=False, timeout=5) # can load but button doesn't work # v.load_url(file_abs_path, no_cache=False, timeout=5) # can load but button doesn't work # v.load_url(url_file_name, no_cache=False, timeout=5) # would let ista crash or load faild # v.load_url(url_file_abs_path, no_cache=False, timeout=5) # doesn't load v.clear_cache()
-
@mikael
I’m not sure if I described my issue clearly, and here’s my another test code, perhaps that would be clearlyfile_name = 'test.copy(2).html' file_abs_path = os.path.abspath(file_name) url_file_name = 'file://' + file_name url_file_abs_path = 'file://' + file_abs_path with open(file_name, 'r', encoding='utf8') as f: html = ''.join(f.readlines()) v = MagicWebView() v.present() # v.load_html(html) # can load but button doesn't work # v.load_url(file_name, no_cache=False, timeout=5) # can load but button doesn't work # v.load_url(file_abs_path, no_cache=False, timeout=5) # can load but button doesn't work # v.load_url(url_file_name, no_cache=False, timeout=5) # would let ista crash or load faild # v.load_url(url_file_abs_path, no_cache=False, timeout=5) # doesn't load v.clear_cache()