2

最初に Python で記述された Django プロジェクトがあります。その後、Jython を使用する利点があることに気付きました。

元のプロジェクトを Jython で動作させるために Jython をいじって 1 日か 2 日過ごした後、おそらく問題は Python で生成された Django プロジェクトを実行しようとしていたことにあることに気付きました。django-jython プロジェクトは、Jython を使用して生成されたすべての Django コードにのみ影響するのではないかと考えていました。

これは事実でしょうか?jython manage.py syncdbを実行しようとしているときにポップアップするエラーはdjango.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLexcept that django-jython が設定されている場合'ENGINE': 'doj.backends.zxjdbc.mysql'なら問題なく動作します。ああ、私のクラスパスには mysql-connector-java-5.1.20-bin.jar が含まれています

何か助けはありますか?チップ?批判?

編集:ああ、ごめんなさい。Jthonでは、私は持っています

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 がなくなったことを伝えています。

ある意味で、この問題は解決されたと思います。

ありがとうございました。:)

4

1 に答える 1

0

純粋なPythonアプリのみを使用する場合は、データベースバックエンドを変更すれば、CPythonとJythonの両方で機能するはずです。いずれかのアプリにCモジュールがある場合は、代わりにPythonまたはJavaライブラリを使用するために関連するコードを移植する必要があります。

于 2012-06-25T23:16:43.037 に答える