web-dev-qa-db-ja.com

ImportError:crispy-formsという名前のモジュールはありません

私はいくつかのDjangoアプリに取り組んでいます。まだかなりnoobです。クリスピーフォームを使用したいのですが、EclipseとDjangoはそれを認識しません。

サーバーまたはシェルを実行しようとしています:

$ python manage.py runserver

これが起こります:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 354, in execute
    Django.setup()
  File "/usr/local/lib/python2.7/dist-packages/Django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/dist-packages/Django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python2.7/dist-packages/Django/apps/config.py", line 87, in create
    module = import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named crispy-forms

これは、views.pyと一緒に最近サイトフォルダーに追加したforms.pyであり、crispy_formsの未解決のインポートについて不満があります...:

from Django.contrib.auth.forms import UserCreationForm
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, ButtonHolder, Submit
from wx.lib.pubsub.core import kwargs

class RegistrationForm(UserCreationForm):
    def __init__(self, *args, **kwargs):
        super(RegistrationForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.layout = Layout(
            'username',
            'password1',
            'password2',
            ButtonHolder(
                Submit('register', 
                       'Register', 
                       css_class='btn-prima'
                )
            )
        )

これは私のsettings.pyの私の部分です:

    INSTALLED_APPS = (
        'Django.contrib.admin',
        'Django.contrib.auth',
        'Django.contrib.contenttypes',
        'Django.contrib.sessions',
        'Django.contrib.messages',
        'Django.contrib.staticfiles',
        'polls',
        'crispy-forms',
    )

...
CRISPY_TEMPLATE_PACK = 'bootstrap'

私はvirtualenvを実行しています、私のvenv-dirは次のようになります:

venv/bin$ ls -la
total 2916
drwxr-xr-x 3 nr1 nr1    4096 Feb 17 11:24 .
drwxr-xr-x 6 nr1 nr1    4096 Feb 16 19:38 ..
-rw-r--r-- 1 nr1 nr1    2220 Feb 16 19:35 activate
-rw-r--r-- 1 nr1 nr1    1276 Feb 16 19:35 activate.csh
-rw-r--r-- 1 nr1 nr1    2489 Feb 16 19:35 activate.fish
-rw-r--r-- 1 nr1 nr1    1137 Feb 16 19:35 activate_this.py
-rwxr-xr-x 1 nr1 nr1     300 Feb 16 19:44 Django-admin
-rwxr-xr-x 1 nr1 nr1     159 Feb 16 19:44 Django-admin.py
-rw-r--r-- 1 nr1 nr1     304 Feb 16 19:44 Django-admin.pyc
-rwxr-xr-x 1 nr1 nr1     267 Feb 17 11:24 easy_install
-rwxr-xr-x 1 nr1 nr1     267 Feb 17 11:24 easy_install-2.7
drwxr-xr-x 7 nr1 nr1    4096 Feb 16 19:47 .git
-rwxr-xr-x 1 nr1 nr1    2364 Feb 17 00:13 pilconvert.py
-rwxr-xr-x 1 nr1 nr1   15631 Feb 17 00:13 pildriver.py
-rwxr-xr-x 1 nr1 nr1    2609 Feb 17 00:13 pilfile.py
-rwxr-xr-x 1 nr1 nr1    1055 Feb 17 00:13 pilfont.py
-rwxr-xr-x 1 nr1 nr1    2410 Feb 17 00:13 pilprint.py
-rwxr-xr-x 1 nr1 nr1     239 Feb 17 11:24 pip
-rwxr-xr-x 1 nr1 nr1     239 Feb 17 11:24 pip2
-rwxr-xr-x 1 nr1 nr1     239 Feb 17 11:24 pip2.7
-rwxr-xr-x 1 nr1 nr1 2884984 Feb 17 11:24 python
lrwxrwxrwx 1 nr1 nr1       6 Feb 17 11:24 python2 -> python
lrwxrwxrwx 1 nr1 nr1       6 Feb 17 11:24 python2.7 -> python
-rwxr-xr-x 1 nr1 nr1    3886 Feb 17 00:11 sqlformat

私が誤って入力してしまった:pip install python今日、それはそうだったようです。何か影響があるのでしょうか?つまり、virtualenvのタスクがソフトウェアがないことを確認することではありません-対立?

とにかく、私がこれを理解するまで、Djangoの作業を進めることができません。

更新1変更:

INSTALLED_APPS = (
    'Django.contrib.admin',
    'Django.contrib.auth',
    'Django.contrib.contenttypes',
    'Django.contrib.sessions',
    'Django.contrib.messages',
    'Django.contrib.staticfiles',
    'polls',
    'crispy_forms',
)

$ python manage.py runserver

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 354, in execute
    Django.setup()
  File "/usr/local/lib/python2.7/dist-packages/Django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/dist-packages/Django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python2.7/dist-packages/Django/apps/config.py", line 87, in create
    module = import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named crispy_forms


$ cat requirements.txt 
Django==1.7.4
Django-crispy-forms==1.4.0
Django-debug-toolbar==1.2.2
Django-extras==0.3
Django-grappelli==2.6.3
Django-haystack==2.3.1
Django-reversion==1.8.5
Django-tastypie==0.12.1
easy-thumbnails==2.2
Pillow==2.7.0
python-dateutil==2.4.0
python-mimeparse==0.1.4
requests==2.5.1
six==1.9.0
sqlparse==0.1.14

アップデート2:新しいDjangoプロジェクトのインストール、新しいvirtualenv、すべて新しい..同じこと

(abc)nr1 @ kali:〜/ workspace/websites/abc $ pip install Django-crispy-forms Django-crispy-formsの収集キャッシュされたDjango-crispy-forms-1.4.0.tar.gzの使用収集したパッケージのインストール:Django-crispy -forms Django-crispy-formsのsetup.py installの実行Django-crispy-forms-1.4.0のインストールに成功

(abc)nr1@kali:~/workspace/websites/abc$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/nr1/Envs/abc/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/nr1/Envs/abc/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 354, in execute
    Django.setup()
  File "/home/nr1/Envs/abc/local/lib/python2.7/site-packages/Django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/nr1/Envs/abc/local/lib/python2.7/site-packages/Django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/nr1/Envs/abc/local/lib/python2.7/site-packages/Django/apps/config.py", line 123, in create
    import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named crispy_forms

私は今、完全なプロジェクトにcrispy_formsをインストールしようとしています、私のvirtualenvを見て、そこにあります:

nr1@kali:~/Envs/abc/local/lib/python2.7/site-packages$ ls -la
total 56
drwxr-xr-x 12 nr1 nr1 4096 Feb 17 21:50 .
drwxr-xr-x  4 nr1 nr1 4096 Feb 17 20:31 ..
drwxr-xr-x  5 nr1 nr1 4096 Feb 17 21:50 crispy_forms
drwxr-xr-x 17 nr1 nr1 4096 Feb 17 20:40 Django
drwxr-xr-x  2 nr1 nr1 4096 Feb 17 20:40 Django-1.7.4.dist-info
drwxr-xr-x  2 nr1 nr1 4096 Feb 17 21:50 Django_crispy_forms-1.4.0-py2.7.Egg-info
-rw-r--r--  1 nr1 nr1  126 Feb 17 20:31 easy_install.py
-rw-r--r--  1 nr1 nr1  315 Feb 17 20:31 easy_install.pyc
drwxr-xr-x  2 nr1 nr1 4096 Feb 17 20:31 _markerlib
drwxr-xr-x 10 nr1 nr1 4096 Feb 17 20:31 pip
drwxr-xr-x  2 nr1 nr1 4096 Feb 17 20:31 pip-6.0.8.dist-info
drwxr-xr-x  4 nr1 nr1 4096 Feb 17 20:31 pkg_resources
drwxr-xr-x  4 nr1 nr1 4096 Feb 17 20:31 setuptools
drwxr-xr-x  2 nr1 nr1 4096 Feb 17 20:31 setuptools-12.0.5.dist-info

それで、それは明らかです。 Djangoは、インストールされていることさえ認識していません。どうすればよいですか?? virtualenvはそこにありますが、Django見えません??? wtx。 ..

11
beowwwulf

わかりましたので、私は偶然に(ほぼ)別の投稿、これを見つけました: Getting stuck at Django error:No module named registration

そしてそれはpythonpathと関係があるかもしれないと思った。

だから私は提案されたようにeasy_installを試しました:

 $ easy_install -Z Django-crispy-forms
    Searching for Django-crispy-forms
    Best match: Django-crispy-forms 1.4.0
    Adding Django-crispy-forms 1.4.0 to easy-install.pth file

    Using /home/nr1/Envs/abc/lib/python2.7/site-packages
    Processing dependencies for Django-crispy-forms
    Finished processing dependencies for Django-crispy-forms

今ではうまくいきます!私はまだpythonpathで何かが足りないかもしれないと思っています、なぜなら私はこれをEclipseで取得し続けるからです:

SignUpView Found at: __module_not_in_the_pythonpath__

、そして誰かにそれを明確にしてほしいので、ここに気軽に貢献してください...

しかしDjangoとcrispy_formsが一緒に動作するようになりました。YippikayeyMF!!

2
beowwwulf

私はこの問題を今すぐ解決します。インストールしたクリスピーフォームのバージョンはpython 2.7バージョンでしたが、Django-1.10をpython 3.5、これもあなたの問題だと思います。

試してください:pip3 install --user Django-crispy-forms

12
Toguko

Crispy-formsをvirtualenvにインストールすることを確認する必要があります。

  1. VirtualEnvをアクティブにします(envは仮想環境のディレクトリ/名前です):

    ソースenv/bin/activate

  2. Crispy-formsをインストールする

    django-crispy-formsのpipインストール

9
kristian

ドキュメントに従って: http://Django-crispy-forms.readthedocs.org/en/latest/install.html#installing-Django-crispy-forms 、 'crispy_forms'を追加する必要がありますインストール済みアプリのリストに「クリスピーフォーム」。

6

上記のすべての回答に1つ欠けています。上記のアドバイスを行う前に、まずドライブ上の「外部ライブラリ」の場所を再確認してください。理由:-別のIDEディレクトリを指すpythonを使用している、つまり、インストールした人のためにpython =複数回。

  • 「virtualenv」が「外部ライブラリ」が格納されている場合、正しいディレクトリを指しているとは思わないでください。したがって、先に進んで間違ったディレクトリにインストールすると、そのようなエラーは大丈夫です
1
Johnny Camby

私はDjangoプロジェクトにPyCharmを使用しています。PyCharmがプロジェクトに使用するPythonインタープリターを変更するまで、PyCharmでまったく同じエラーが発生します。インストールされているモジュールを認識するPython(PyCharm)を取得するには、プロジェクトごとに、関連するvirtalenvフォルダーにあるIDEインタープリターを選択する必要があります。 Pythonpathがバックグラウンドのどこかに潜んでいると思います...

Eclipseでは、プロジェクトに使用するインタープリターを選択できませんか?それは私が探し始めるところです。

幸運を!

1
David Kaplan

同じ問題に遭遇し、別の方法を見つけました。

  1. Virtualenvを終了します。
  2. ルートディレクトリでクリスピーフォームの新しいpipインストールを実行します。
  3. Virtualenvに戻り、移行してから移行します。

Djangoインストールでは、すべてのサードパーティアプリを仮想環境の内部と外部にインストールする必要があると思います。
理由の背後にある内部の詳細について誰かが私を助けてくれると本当にありがたいです。

1
Chiradip