Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

virtualenv, mysql-python, pip: anyone know how? [duplicate]

I'm trying to install the mysql bindings in a virtualenv. I'd prefer to use pip or easy_install. pip gives me the following error:

  File "setup_posix.py", line 24, in mysql_config

    raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

easy_install either gets a 404 from sourceforge or gives me a very similar error.

Does anyone know how to get around this in a virtualenv?

like image 301
rz. Avatar asked Oct 02 '09 20:10

rz.


3 Answers

I'm also trying to setup MySQL bindings in a virtualenv. All I had to do was install the package that contains mysql_config. On Ubuntu it's called libmysqlclient-dev.

After that I was able to do a (virtualenv'd) python setup.py build and python setup.py install.

like image 113
ariddell Avatar answered Oct 15 '22 13:10

ariddell


In OS X I had used Macports to install my MySQL, which made the mysql_config file be called mysql_config5.

So I did: sudo ln -s mysql_config5 /opt/local/bin/mysql_config

And then ran pip install MySQL-python from a virtualenv and all was fine.

like image 32
philfreo Avatar answered Oct 15 '22 13:10

philfreo


You may not have mysql_config at all if you don't have the appropriate mysqlclient-dev OS package installed.

Personally, for packages that require extensive C compilation, I prefer to install OS-packaged versions, as I've had fewer problems that way. It's easier to install the OS-packaged version of mysql-python on all my servers than it is to install the compilation dependencies.

Fortunately in my experience those packages also tend to be very stable (mysql-python, PIL, lxml, etc), so I don't need to version-pin them per-project.

It does, however, prevent me from using virtualenv --no-site-packages, which is a little annoying.

like image 1
Carl Meyer Avatar answered Oct 15 '22 12:10

Carl Meyer