I'm tying to install a new package I have been recommended using either pip
or easy_install
and both are throwing up the below error and I can figure out why.
I have cleared the temp
folder as thought this was the issue at first.
I have just stuck the pip
error up but can add easy_install
if needed
c:\Python32\Scripts>easy_install PyMySQL
C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\pkg_resources\__init__.py:87: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.
Searching for PyMySQL
Reading https://pypi.python.org/simple/PyMySQL/
Best match: PyMySQL 0.7.2
Downloading https://pypi.python.org/packages/source/P/PyMySQL/PyMySQL-0.7.2.tar.gz#md5=6d757cda8bfbd312714207f7c0bef5c7
Processing PyMySQL-0.7.2.tar.gz
Writing c:\users\jarratt\appdata\local\temp\easy_install-bf6ut8\PyMySQL-0.7.2\setup.cfg
Running PyMySQL-0.7.2\setup.py -q bdist_egg --dist-dir c:\users\jarratt\appdata\local\temp\easy_install-bf6ut8\PyMySQL-0.7.2\egg-dist-tmp-x5vabv
C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\pkg_resources\__init__.py:87: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.
Traceback (most recent call last):
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 154, in save_modules
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 195, in setup_context
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 243, in run_setup
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 273, in run
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 242, in runner
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\sandbox.py", line 46, in _execfile
File "c:\users\jarratt\appdata\local\temp\easy_install-bf6ut8\PyMySQL-0.7.2\setup.py", line 4, in <module>
File "c:\users\jarratt\appdata\local\temp\easy_install-bf6ut8\PyMySQL-0.7.2\pymysql\__init__.py", line 28, in <module>
File "c:\users\jarratt\appdata\local\temp\easy_install-bf6ut8\PyMySQL-0.7.2\pymysql\converters.py", line 59
_escape_table[0] = u'\\0'
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Python32\Scripts\easy_install-script.py", line 9, in <module>
load_entry_point('setuptools==20.2.2', 'console_scripts', 'easy_install')()
File "C:\Python32\lib\site-packages\setuptools-20.2.2-py3.2.egg\setuptools\command\easy_install.py", line 2244, in main
The code of PyMySQL uses Unicode literals.
The py3.2
parts of the directory names in the traceback of your error message tells me you're using Python 3.2. While Python 2 had Unicode literals, Python 3.0 to 3.2 didn't: The syntax was removed with Python 3.0:
You can no longer use
u"..."
literals for Unicode text.
It was re-introduced with Python 3.3 by PEP 414 for backwards compatibility reasons.
As Boaz stated and Padraic pointed out, PyMySQL requires Python 2.x ≥ 2.6 or 3.x ≥ 3.3, thus why the authors of PyMySQL felt free to use the Unicode literal syntax in their code.