It took me 4 days looking how to install this Mysqldb to no avail. i found a lot of sulutions no one is working with me
I tried to build it from the source with many ways to no avail. My environment is Windows XP. MySQL 5.0. Python 2.6 (windows version).
Yesterday i received an email from a friend about another mysql connector named "pymysql" it's very easy to install it in three steps:
Step1:
Install Python setuptools (easy_install.exe) if you haven’t installed it. It is required to install pymysql.
To install setuptools
Download these two files and put them into the same directory:
- http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg#md5=ca37b1ff16fa2ede6e19383e7b59245a
- http://peak.telecommunity.com/dist/ez_setup.py
Add the path where easy_install is installed into your environment PATH ({PYTHON_PATH}\Scripts, {PYTHON_PATH} is the path where python is installed).
Step2:
Install pymysql, it's easy just donwload the latest version of PyMySQL-0.3-py2.6.egg, put it in a directory and open a command prompt, change to this directory. then run "easy_install.exe PyMySQL-0.3-py2.6.egg" if it doesn't work try an absolute path of easy-install ({PYTHON_PATH}\Scripts\easy_install.exe PyMySQL-0.3-py2.6.egg)
Step3:
Now you can test it in python just open the "IDLE(Python GUI)" and run the test below:
>>>import pymysql
>>>conn = pymysql.connect(host='localhost', port=3306, user='root', passwd=None, db='mysql') >>>cur = conn.cursor() >>>cur.execute("SELECT Host,User FROM user") >>>for r in cur: >>> print r
>>>cur.close() >>>conn.close()
Step 4 for django:
To use it with django you need one more step:
go to the django directory, exactly in this directory{..\PythonPath}\Lib\site-packages\django\db\backends\mysql
and simply do a search and replace of MySQLdb with pymysql
in the two files "base.py" and "introspection.py"
That's it.
thanks to mouad for the link and to
14 comments:
if you get some errors and warnings in step 2: it's ok. go to the next step.
you saved my life. praise you!
My pleasure, anytime
I have python2.7 and not sure how to install PyMySQL-0.3-py2.6.egg: I don't have easy_install.exe on my machine
But I got Django work on xp somehow (through django's tutorial)
So PyMySQL is not necessary?
hi YL,
no it's not if you don't want to use mysql as a database.
but to use mysql database you need PyMySQL.
hi YL,
For your first question about "easy_install.exe" look at step1
Thanks a lot for your explanation, im a newbie on python and this instructions helped a lot, it worked ok!!.
@Ricardo, you are welcome, i'm happy it helped you
Hi bounmed.. nice article.. everything worked perfectly until i ran the command "python manage.py syncdb " It gave me errors.
File "manage.py", line 28, in
execute_from_command_line()
File "C:\sowo-env\Lib\site-packages\django\core\management\__init__.py", line
352, in execute_from_command_line
utility.execute()
File "C:\sowo-env\Lib\site-packages\django\core\management\__init__.py", line
306, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\sowo-env\Lib\site-packages\django\core\management\base.py", line 192,
in run_from_argv
self.execute(*args, **options.__dict__)
File "C:\sowo-env\Lib\site-packages\django\core\management\base.py", line 219,
in execute
output = self.handle(*args, **options)
File "C:\sowo-env\Lib\site-packages\django\core\management\base.py", line 348,
in handle
return self.handle_noargs(**options)
File "C:\sowo-env\Lib\site-packages\django\core\management\commands\syncdb.py"
, line 54, in handle_noargs
tables = connection.introspection.table_names()
File "C:\sowo-env\Lib\site-packages\django\db\backends\__init__.py", line 405,
in table_names
return self.get_table_list(cursor)
File "C:\sowo-env\lib\site-packages\django\db\backends\mysql\introspection.py"
, line 33, in get_table_list
cursor.execute("SHOW TABLES")
File "C:\sowo-env\Lib\site-packages\django\db\backends\util.py", line 19, in e
xecute
return self.cursor.execute(sql, params)
File "C:\sowo-env\lib\site-packages\django\db\backends\mysql\base.py", line 83
, in execute
return self.cursor.execute(query, args)
File "build/bdist.macosx-10.6-universal/egg/pymysql/cursors.py", line 102, in
execute
File "build/bdist.macosx-10.6-universal/egg/pymysql/connections.py", line 175,
in defaulterrorhandler
pymysql.err.InternalError: (1046, u'No database selected')
earlier i made changes in setting.py and had some database name and it gave different error saying database does not exist or something like that. that why i removed it. How should I make a database when playing with pymysql. I am really confused.Please help me out.
Thank you :)
awesome, thanks so much for posting this
I get this error,
In step 1, you have asked to save 2 files..what would be the filenames of both those files..
2nd file I have named it as ez_setup.py,
what would be my 1st file name.
C:\Python27\Lib\site-packages>python ez_setup.py setuptools-0.6cc9-py2.6.egg
Searching for setuptools-0.6cc9-py2.6.egg
Reading http://pypi.python.org/simple/setuptools-0.6cc9-py2.6.egg/
Couldn't find index page for 'setuptools-0.6cc9-py2.6.egg' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
No local packages or download links found for setuptools-0.6cc9-py2.6.egg
Best match: None
Traceback (most recent call last):
File "ez_setup.py", line 278, in
main(sys.argv[1:])
File "ez_setup.py", line 239, in main
main(argv)
File "C:\Python27\Lib\site-packages\setuptools\command\easy_install.py", line
1712, in main
with_ei_usage(lambda:
File "C:\Python27\Lib\site-packages\setuptools\command\easy_install.py", line
1700, in with_ei_usage
return f()
File "C:\Python27\Lib\site-packages\setuptools\command\easy_install.py", line
1716, in
distclass=DistributionWithoutHelpCommands, **kw
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
Hi, Thanks a lot
It helped a lot, I was trying from last three days.
Great job,thank u again.
Hi
I also have a blog and I have also installed Django and used your way to use MySQL with it so I am writing a post on installing Django on windows and using it with MySQL so in that post I am referring to your post and using your steps to tell about installing pymysql. Hope you will not mind.
Post a Comment