在OpenShift上安装MySQL-python模块

时间:2014-07-05 07:49:15

标签: python mysql openshift

我是否需要Openshift上的连接器。我试图使用pip install mysql-python安装它,但是没有安装它,我得到以下问题:

from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'

但是我无法安装此软件包ConfigParser。这是问题所在:

 from configparser import ConfigParser

  File "./configparser.py", line 397

    _KEYCRE = re.compile(ur"%\(([^)]+)\)s")  

3 个答案:

答案 0 :(得分:2)

与上面提到的velblud一样,您可以使用PyMySQL。 这是我的完整解决方案,共有2个部分。我怀疑还有另一种(更合适的)方法,但我只想分享对我有用的东西。

第1部分:您需要安装依赖项PyMySQL。最常见的是我看到人们给出了建议使用“pip install PyMySQL”的答案。我怀疑这样做的缺点是你必须每次手动执行此操作,对于你想要部署的任何新节点(即dev vs prod)。相反,我将其添加到“requirements.txt”文件中,该文件似乎在部署时为我安装:

###Add pip packages here, simulates "pip install xxx" during deployment
#SOLVES ImportError: No module named 'MySQLdb', actual import is done in settings.py
PyMySQL==0.6.2

第2部分:我看到了将导入逻辑添加到“application”或“manage.py”文件的建议。那对我没用。而是在我的“settings.py”文件中,我添加了这个:

if ON_OPENSHIFT:
    try:
        print("IMPORTING - PyMySQL as MySQLdb")
        import pymysql
        pymysql.install_as_MySQLdb()
    except ImportError:
        print("CANT FIND - PyMySQL")
        pass

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'YOUR_DB_NAME_HERE',
            'USER': os.environ['OPENSHIFT_MYSQL_DB_USERNAME'],
            'PASSWORD': os.environ['OPENSHIFT_MYSQL_DB_PASSWORD'],
            'HOST': os.environ['OPENSHIFT_MYSQL_DB_HOST'],
            'PORT': '3306',
        }
    }

在“git push”部署到Openshift期间,您将在开头看到“requirements.txt”安装。并且您可以在部署之前和之后从shell命令行运行“pip list”以查看它是否正确安装。您还将在git部署期间看到print(“Importing - PyMySQL as MySQLdb”)。它将运行syncdb,您将看到正在创建,更新,迁移MySQL表等。

仅供参考,我使用的版本是截至今天的当前版本。希望这有助于某人...

答案 1 :(得分:1)

正如我在previous question的评论中提到的那样:试试suggestion from PythonAnywhere.com
(但没有--user

 pip install https://github.com/davispuh/MySQL-for-Python-3/archive/1.0.tar.gz

答案 2 :(得分:0)

您可以使用PyMySQL(https://github.com/PyMySQL/PyMySQL

$ pip install PyMySQL