在OpenShift上安装MySQL-python模块
我需要在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 个回答
你可以使用 PyMySQL 这个库,具体可以在这里找到它的资料:https://github.com/PyMySQL/PyMySQL
$ pip install PyMySQL
正如我在对之前问题的评论中提到的:可以试试PythonAnywhere.com的建议
(不过不要加上--user
这个选项)
pip install https://github.com/davispuh/MySQL-for-Python-3/archive/1.0.tar.gz
就像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的表被创建、更新、迁移等等。
顺便说一下,我用的版本是截至今天的最新版本。希望这能帮到某些人……