python - 在 OpenShift 上安装 MySQL-python 模块

标签 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")  

最佳答案

就像上面velblud说的,你可以改用PyMySQL。 这是我的完整解决方案,分为两部分。我怀疑还有另一种(更合适的)方法可以做到这一点,但我只是想分享对我有用的方法。

Part1:你需要安装依赖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

第 2 部分:我看到了将导入逻辑添加到我的“应用程序”或“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 表。

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

关于python - 在 OpenShift 上安装 MySQL-python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24584244/

相关文章:

mysql - 是否有 cli 命令可将数据库添加到现有 AWS/RDS 实例

java - 为什么这个 java servlet 不起作用 [OpenShift+Tomact6+Git+Jboss]

mysql - 如何在 openshift MySql 数据库上设置 transaction_isolation = READ-COMMITTED?

python - PIL ImageGrab 在 Python 中捕获选定的窗口

python - 我可以让我的所有单元测试都在 Flask 应用上下文中运行吗?

mySQL 在新创建的列上使用 where

mysql - COUNT(*) 问题

java - 使用 Java 在 Openshift 上打开文件

python - 在 3D openGL 世界中创建 2D 界面的问题

python - 没有名为 'websocket' 的模块