如何在我自己的setup.py中安装MySQLdb?

时间:2014-08-06 14:42:42

标签: python mysql-python

我目前有一个setup.py文件,用于我写过的应用程序。使用setuptools我很容易就能安装pip-available的要求:

install_requires = [
    'argparse',
    'multiprocessing',
    'requests',
    'numpy',
    'termcolor',
    'prettytable'
]

问题是我还需要安装MySQLdb,它不是通过pip安装的。在本地设置时,我不得不下载tarball,解压缩,安装,符号链接等...简而言之,它是一个PITA。

无论如何在我的setup.py文件中自动执行此操作?而不是下载tarball并将其作为一个包包括在内?即便如此,我如何在自己的setup.py内运行setup.py

1 个答案:

答案 0 :(得分:0)

您实际上可以通过pip安装MySQLdb,但该包名为MySQL-python

现在,您的用户仍然需要安装软件包的C依赖项(libmysqlclient),但这可以通过软件包管理器轻松安装。提供非setup.py安装脚本(例如bash脚本)来安装相应的系统依赖项(libmysqlclient)并调用setup.py也是相当容易的:

#!/bin/bash
apt-get install -y libmysqlclient-dev  # Improve me! Check the platform first
python setup.py install 

请勿尝试在setup.py中做太多事情。没有人希望setup.py脚本安装系统软件包,所以你应该不要在你的软件中安装。{/ p>


现在,如果要求用户安装系统软件包太多(如果他们没有root访问权限,那么就可以),你应该使用纯Python MySQL客户端。

一个这样的客户端是pymysql,当然可以通过pip安装。