在OpenShift上安装MySQL-python模块

0 投票
3 回答
976 浏览
提问于 2025-04-18 12:11

我需要在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

你可以使用 PyMySQL 这个库,具体可以在这里找到它的资料:https://github.com/PyMySQL/PyMySQL

$ pip install PyMySQL
1

正如我在对之前问题的评论中提到的:可以试试PythonAnywhere.com的建议
(不过不要加上--user这个选项)

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

就像velblud上面说的,你可以用PyMySQL来代替。这里是我的完整解决方案,分为两个部分。我觉得可能还有其他更合适的方法,但我只是想分享对我有效的做法。

第一部分:你需要安装PyMySQL这个依赖库。大多数人建议用“pip install PyMySQL”来安装。我觉得这样做的缺点是,每次你想部署新的节点(比如开发环境和生产环境)时,都得手动安装一次。为了避免这个麻烦,我把它加到了“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

第二部分:我看到有人建议把导入的逻辑加到我的“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',
        }
    }

在把代码推送到Openshift时,你会看到一开始会安装“requirements.txt”里的内容。你可以在命令行里运行“pip list”,在部署前后查看是否安装成功。你还会在git部署时看到打印信息“Importing - PyMySQL as MySQLdb”。它会运行syncdb,你会看到MySQL的表被创建、更新、迁移等等。

顺便说一下,我用的版本是截至今天的最新版本。希望这能帮到某些人……

撰写回答