我是否需要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")
答案 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