Getting an "invalid syntax" error from __init__.py - python-2.6

I'm following this example for using Flask-JWT:
https://pythonhosted.org/Flask-JWT/
And I get this error when I start uwsgi:
Traceback (most recent call last):
File "./wsgi.py", line 1, in
from main import app as application
File "./main.py", line 5, in
from auth import api_auth
File "./auth.py", line 3, in
from flask_jwt import JWT
File "/opt/mist_base/env/lib/python2.6/site-packages/flask_jwt/__init__.py", line 83
for claim in verify_claims
^
SyntaxError: invalid syntax
I've been only using Python v2.6.6 (for Centos 6.x per customer specification) for only a week so I'm still very green at it. As a result, earlier today I discovered I had multiple variations of JWT-something in my virtualenv so I removed all instances and only reinstalled Flask-JWT. I had thought the issue was library conflicts (and it may have been earlier), but I'm still getting this error and other people have used it with no issues. Am I doing something wrong or is this library simply not designed to be used with Python v2.6.x?
[UPDATE] I've gone ahead and compiled v2.7.12 from source in CentOS 6 and so far it works nicely for my needs. I found these directions:
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
and was able to install in an alternate directory.

This library just doesn't work on Python 2.6. The source code relies on features like dict comprehensions that only exist in 2.7 and up.

Related

Unable to run Autokey Ubuntu 18.04

I am relatively new to Linux/Ubuntu (so please take it easy on me) and I am trying to install Autokey to use the text expansion functionality. I have tried installing it from the instructions on the Github page here - https://github.com/autokey/autokey#installation
However, no matter whether I follow the installation process under the Ubuntu/Mint/Debian section or the instructions to install via pip I cannot seem to get the program working.
The installation seems to be successful (running a 'which' command gives the path installed) but clicking on the icon does not launch the program.
I have also tried to install directly from Ubuntu/GNOME software manager but that also will not launch the program once installed.
I have tried installing both the GTK and QT frontends and neither will launch. I don't get an error message or anything. I have opened up the System Monitor to see if a process even appears (however briefly) and there's nothing.
Typing autokey-gtk into Terminal gives:
/usr/local/lib/python2.7/dist-packages/autokey/gtkapp.py:24: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import Gtk, Gdk, GObject, GLib
Traceback (most recent call last):
File "/usr/local/bin/autokey-gtk", line 20, in <module>
from autokey.gtkapp import Application
File "/usr/local/lib/python2.7/dist-packages/autokey/gtkapp.py", line 28, in <module>
import service, monitor
File "/usr/local/lib/python2.7/dist-packages/autokey/service.py", line 21, in <module>
from iomediator import Key, IoMediator
File "/usr/local/lib/python2.7/dist-packages/autokey/iomediator.py", line 107, in <module>
from interface import *
File "/usr/local/lib/python2.7/dist-packages/autokey/interface.py", line 29, in <module>
from Xlib import X, XK, display, error
ImportError: No module named Xlib
Can anyone please help? Thank you.
I am a newbie too and installed Autokey 0.90.4, which did not work for me either. Someone suggested I try 0.95.1 because the other version is 7 years old.
I installed the new version with some acrobatics from the Autokey Github page, using the PIP method. At 1st it did not work, but after doing import setuptools it did. That might be a coincidence since it was after installation of the Ak package itself.
I know this sounds convoluted, but I am not familiar (yet?) with Linux. Anyway 0.95 works for me.
install module python-xlib and it will work, like this:
On Deb:
apt install python3-xlib
You might later need python autokey module as well:
pip install autokey

Previously successful Scapy installation for Python 3, sniff() now failing with AttributeError

On Mac OS 10.13.1
Using Scapy for the first time to do a simple packet-sniffing project.
Was working perfectly fine over the weekend after following the installation instructions here for Mac OS:
https://phaethon.github.io/scapy/api/installation.html
Hardware problems required me to move my work to a different machine, running the exact same OS.
I figured "no problem" - setup a new Python 3 venv and reinstalled dependencies on the second laptop (libdnet via brew, libpcap and scapy3k via pip).
Now a simple test using sniff() in Scapy produces the following error:
Traceback (most recent call last):
File "", line 1, in
File "/Users/ersheff/Virtualenvs/Scapy/lib/python3.6/site->packages/scapy/sendrecv.py", line 576, in sniff
s = L2socket(type=ETH_P_ALL, *arg, **karg)
File "/Users/ersheff/Virtualenvs/Scapy/lib/python3.6/site->packages/scapy/arch/linux.py", line 469, in init
self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, >socket.htons(type))
AttributeError: module 'socket' has no attribute 'AF_PACKET'
I'm well aware that the AF_PACKET attribute is not available on Mac OS and is specific to Linux, and as you might expect, all of my searching about this problem leads to that answer. However, as mentioned, this method was working for me before on a different machine with the same OS.
Admittedly, I'm a novice, but reading that error makes it look to me like Scapy is erroneously referring to the linux.py file in the arch directory when it should be referring to the bsd.py or unix.py files (both of which are present).
Any ideas?
Thanks in advance.
This question is old. For the record, the official scapy version now supports Python 3. OSX has been fixed on their sides:
https://github.com/secdev/scapy
Have a nice week,

read-the-docs: ImportError despite dependency being set in setup.py

Consider this build error:
I see lines like: ImportError: No module named swisseph and invalid signature for automodule (u'jyotisha\n :members:'). My setup.py does include pyswisseph as a dependency already.. What's a good fix?
PS: My local sphinx build seems fine.
Following #steve-piercy's tip and the FAQ, I was able to get past this error - I just needed to to enable the virtualenv feature in the Admin page of my project.
The install then fails for another (as yet undebugged reason) - but that's separate.

cx_freeze builds Mac program that runs from command line but dies when clicked

I have a Python 2.7/PyQt4 program that I am attempting to freeze with cx_freeze. The program also uses requests, serial, xml.etree.ElementTree, and collections. Using the unmodified setup.py generated by cxfreeze-quickstart-2.7, I can successfully build as both a console program (python setup.py build) and an .app (python setup.py bdist_mac) in Yosemite using Python from macports. If I run the program directly either from the app bundle or the dist:
$ build/MacDISE-1.0.app/Contents/MacOS/macdise
$ dist/macdise
It runs exactly as expected. If I open from the command line:
$ open -a /Users/jeffemandel/macdise/build/MacDISE-1.0.app
I get the dreaded
LSOpenURLsWithRole() failed for the application /Users/jeffemandel/macdise/build/MacDISE-1.0.app with error -10810.
I worked through a number of potential issues raised by Dan McCombs (distutils.util.get_platform, sys.arg), but these don’t seem to be the problem. Through brute force trial and error, I found that if I put all of my code in a separate module, simply importing that module (without actually invoking it) causes the 10810 error, so I figured it was finding a library when run from the command line, but not from the app. I put the dist directory on a thumb drive and ran it on another Mac that doesn't have Python, Qt4, etc installed, and got this:
packages/cx_Freeze/initscripts/Console.py", line 27, in <module> File "macdise.py", line 4, in <module>
File "ExtensionLoader_PyQt4_QtGui.py", line 11, in <module>
ImportError: dlopen(/Volumes/NO NAME/dist/PyQt4.QtGui.so, 2): Library not loaded: /opt/local/Library/Frameworks/QtGui.framework/Versions/4/QtGui
Referenced from: /Volumes/NO NAME/dist/PyQt4.QtGui.so
Reason: image not found
When I look in dist, there is a file QtGui that is the same size as the one in /opt. So it seems the failure is dlopen(PyQt4.QtGui.so) returning a hard-coded path to the QtGui library. I'm guessing the solution is simple, but I haven't stumbled across it yet.
Update: I looked at the libraries in build/Contents/MacOS/PyQt4.*.so with otool, and these all have #executable_path (as opposed to hard-coded paths in dist). My stupid. So I repeated the process of moving the program, only using the MacOS folder rather than the dist folder, and executing macdise from the command line on my wife's MBP. The problem turned out to be in the way I was looking for the included_files. I changed this to:
if getattr(sys, 'frozen', False):
uiName = os.path.join(os.path.dirname(sys.executable), "tabDISE.ui" )
else:
uiName = "tabDISE.ui"
and it runs. What would have saved me a day would be a way to automagically dump the error message generated when executing from the command line to the console log. If someone knows how to do this, it would be a big help.

TypeError when downloading rapidsms using pip in django-tables2

I'm a total python newbie. I installed python 3.3.1 on a 32 bit windows 7 professional. I'm trying to install RapidSMS, and it should be as easy as "pip install rapidsms" and it does start the process, but it doesn't complete and I'm left with the below error message.
I've been trying to google it, but I haven't been able to find this specific problem, for the error I find fixes for people who have written the code themselves, and I haven't seen anyone mention this problem about rapidsms themselves. Since it stops in Django-tables, I wonder if I messed up that installation somehow or if there's a problem with the python version compatibility. I've used pip when installing some other software, so I don't think that's the problem.
So if anyone's encountered this error when installing pyhton packages or really have any idea what the cause might be I'd really appreciate it! (I also plan to post this in the RapidSMS mailing list when I get approved, but wanted to see if this was a more general problem that might have a fix.)
Downloading/unpacking django-tables2==0.13.0 (from rapidsms)
Running setup.py egg_info for package django-tables2
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "c:\users\mhealth1\appdata\local\temp\pip-build-mhealth1\django-tables2\setup.py", line 7, in <module>
version = re.search('__version__ = "(.+?)"', f.read()).group(1)
File "C:\Python33\lib\re.py", line 161, in search
return _compile(pattern, flags).search(string)
TypeError: can't use a string pattern on a bytes-like object
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "c:\users\mhealth1\appdata\local\temp\pip-build-mhealth1\django-tables2\setup.py", line 7, in <module>
version = re.search('__version__ = "(.+?)"', f.read()).group(1)
File "C:\Python33\lib\re.py", line 161, in search
return _compile(pattern, flags).search(string)
TypeError: can't use a string pattern on a bytes-like object
----------------------------------------
Command python setup.py egg_info failed with error code 1 in c:\users\mhealth1\a
ppdata\local\temp\pip-build-mhealth1\django-tables2
Storing complete log in C:\Users\mhealth1\pip\pip.log
Django-tables2 fails to install in Python3 because of the following code from line 7 of setup.py in the traceback:
version = re.search('__version__ = "(.+?)"', f.read()).group(1)
This should work if the search pattern was a bytes object. A byte literal can be created by simply pre-pending the string literal with a b like the following:
version = re.search(b'__version__ = "(.+?)"', f.read()).group(1)
This is why Python is throwing a TypeError with the message "Can't use a string pattern on a bytes-like object". The file contents are being read in as bytes.
I don't think RapidSMS currently supports Python3 yet based on its list of environments that are tested. This can be seen in the tox environments list of the project seen here, in which only Python 2.6 and 2.7 are listed: https://github.com/rapidsms/rapidsms/blob/develop/tox.ini#L2
To solve the immediate problem, you'll want to install RapidSMS in a virtual environment with Python 2.6 or 2.7. The documentation for RapidSMS describes virtual environment setup briefly here: http://www.rapidsms.org/en/develop/topics/virtualenv.html
You'll want to install Python 2.6 or 2.7 on your system and specify which Python for the virtualenv to use, using the -p or --python argument. The following is taken from the RapidSMS docs linked above, but ammended to specify using Python 2.7:
mkvirtualenv --distribute --no-site-packages rapidsms --python=python2.7

Resources