display icon indicating copy to clipboard operation
display copied to clipboard

issues with python version for python2.7

Open jingweiz opened this issue 8 years ago • 2 comments

Hey, I've been using the lua version of this package and it's awesome, really great work! Now I'm trying out the python version, but am having this error:

>>> import display
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/zhang/.local/lib/python2.7/site-packages/display/__init__.py", line 5, in <module>
    import urllib.request
ImportError: No module named request

Then I found out that here urllib.request is a package for python3 but I'm using python2.7, so I modified the following lines of __init__.py:

# import urllib.request
import urllib2

# req = urllib.request.Request(URL, method='POST')
req = urllib2.Request(URL)

# resp = urllib.request.urlopen(req)
resp = urllib2.urlopen(req)

but then I get this error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/me/.local/lib/python2.7/site-packages/display/__init__.py", line 76, in image
    'width': opts.get('width'),
  File "/home/me/.local/lib/python2.7/site-packages/display/__init__.py", line 38, in pane
    send(command='pane', type=panetype, id=win, title=title, content=content)
  File "/home/me/.local/lib/python2.7/site-packages/display/__init__.py", line 29, in send
    resp = urllib2.urlopen(req)
  File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 404, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 422, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 111] Connection refused>

So I guess I cannot just simply replace urllib.request.Request(URL, method='POST') also just to urllib2.Request(URL), so can you give me some ideas as how to modify the code to work under python2.7?

Thanks in advance!

jingweiz avatar Feb 03 '17 21:02 jingweiz

So I actually find the solution to this problem. Just have to run "th -ldisplay.start 8000 0.0.0.0" before you call display.image Before in the lua version, the package will work without it, but here in the python version somehow this won't work. This would be an issue if I want to run my code for a relatively long period of time cos I found that the th -ldisplay.start breaks from time to time... How should the code be modified to solve this issue? Thanks!

jingweiz avatar Feb 05 '17 18:02 jingweiz

Hi @jingweiz, I have a modified python client that works in python2 (actually never tried it in python3). It is work in progress but I use it often. https://github.com/dimatura/pydisp, or pip install pydisp.

dimatura avatar Mar 15 '17 04:03 dimatura