【发布时间】:2012-06-27 04:52:34
【问题描述】:
我有一个首先用 Python 编写的 Django 项目。然后我们意识到使用 Jython 可能会有优势。
花了一两天时间摆弄 Jython 试图让原始项目在 Jython 中运行后,我意识到问题可能在于我试图运行一个用 Python 生成的 Django 项目。我在想也许 django-jython 项目可能只会影响使用 Jython 生成的所有 Django 代码。
会是这样吗?当我尝试运行 jython manage.py syncdb 时弹出的错误是 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb except django-jython 应该可以做到,所以如果我的配置说 'ENGINE': 'doj.backends.zxjdbc.mysql' 那么它会运行正常。哦,我的类路径确实包含 mysql-connector-java-5.1.20-bin.jar
有什么帮助吗?提示?批评?
编辑:哦,对不起。在 Jython,我有
Django : 1.3.1
Jython : 2.5.2
django-jython : 1.3
数据库如下所示:
DATABASES = {
'default': {
'ENGINE': 'doj.backends.zxjdbc.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django_abcd', # Or path to database file if using sqlite3.
'USER': 'abcdef', # Not used with sqlite3.
'PASSWORD': 'ghijkl123', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
EDIT 2:所以我想我发现了一些问题。 Jython 正确设置了它自己的东西,但是当我将东西添加到 JYTHONPATH 时,会产生冲突(特别是当我将原始 python 站点包包含到 JYTHONPATH 时)。 Jython 没有告诉我有模块名称 MySQLdb,而是告诉我它现在缺少 Grappelli。
所以在某种程度上,我认为这个问题已经解决了。
感谢大家的宝贵时间。 :)
【问题讨论】:
-
需要更多信息:Django 版本,然后复制并粘贴您的
DATABASES设置。您暗示了,但请按原样发布所有相关设置。 -
对于 django-jython 安装,您遇到的错误让我觉得很奇怪。
MySQLdb是 Python MySQL 连接器的模块名称。如果找不到 jar 文件,您正在使用的引擎应该会报错“加载 zxJDBC 模块时出错”。确保重新启动所有正在运行的网络服务器,并删除任何*.pyc以防万一。 -
我没有任何 *.pyc 文件或 Web 服务器。目前这一切都在本地运行。这就是为什么我的问题在这里——我没有在 Jython 中重写任何东西,而是我只是使用了我现有的 Django Python 项目并尝试在 Jython 中运行它。