【问题标题】:Django can't import ckeditor in settings but can in shell?Django 无法在设置中导入 ckeditor 但可以在 shell 中导入?
【发布时间】:2015-04-06 18:32:43
【问题描述】:

从设置加载时由于某种原因找不到CKeditor,但从python shell导入它工作正常。

Django 1.7。 Python(2.7.9) 是替代安装。通过pip2.7 install django-ckeditor安装ckeditor

https://github.com/django-ckeditor/django-ckeditor

没有 ckeditor in settings.py:

[user@server mysite]$ python2.7 manage.py shell
Python 2.7.9 (default, Feb  1 2015, 21:31:28) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import ckeditor
>>> 
>>> 
>>> 
[user@server mysite]$ python2.7 manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings:

    /var/www/mysite/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

0 static files copied to '/var/www/mysite/static', 2357 unmodified.

在 settings.py 中添加了“ckeditor”

INSTALLED_APPS = (
    'ckeditor ',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'allauth',
    'documentation',
    'allauth.account',
    'allauth.socialaccount',
    'django.contrib.auth',
    'app',
    'thunderdome',
    'suit',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',
   # 'supplementtut',
    'dbmail',
    'tinymce', 
)

CKEDITOR_UPLOAD_PATH = "uploads/"

Shell、collectstatic、runserver 都一样:

[user@server mysite]$ python2.7 manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 87, in create
    module = import_module(entry)
  File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named ckeditor 
[user@server mysite]$ 

验证已安装:

[user@server mysite]$ cd /usr/local/lib/python2.7/site-packages/ckeditor
[user@server ckeditor]$ ls -l
total 92
-rw-r--r-- 1 user domain users 1371 Apr  6 13:03 fields.py
-rw-r--r-- 1 user domain users 1975 Apr  6 13:03 fields.pyc
drwxr-xr-x 2 user domain users 4096 Apr  6 13:03 image
-rw-r--r-- 1 user domain users  297 Apr  6 13:03 image_processing.py
-rw-r--r-- 1 user domain users  611 Apr  6 13:03 image_processing.pyc
-rw-r--r-- 1 user domain users  721 Apr  6 13:03 __init__.py
-rw-r--r-- 1 user domain users  853 Apr  6 13:03 __init__.pyc
drwxr-xr-x 3 user domain users 4096 Apr  6 13:03 management
-rw-r--r-- 1 user domain users    0 Apr  6 13:03 models.py
-rw-r--r-- 1 user domain users  144 Apr  6 13:03 models.pyc
drwxr-xr-x 3 user domain users 4096 Apr  6 13:03 static
drwxr-xr-x 3 user domain users 4096 Apr  6 13:03 templates
-rw-r--r-- 1 user domain users  411 Apr  6 13:03 urls.py
-rw-r--r-- 1 user domain users  649 Apr  6 13:03 urls.pyc
-rw-r--r-- 1 user domain users 1025 Apr  6 13:03 utils.py
-rw-r--r-- 1 user domain users 2207 Apr  6 13:03 utils.pyc
-rw-r--r-- 1 user domain users 4749 Apr  6 13:03 views.py
-rw-r--r-- 1 user domain users 5089 Apr  6 13:03 views.pyc
-rw-r--r-- 1 user domain users 4583 Apr  6 13:03 widgets.py
-rw-r--r-- 1 user domain users 4957 Apr  6 13:03 widgets.pyc
[user@server ckeditor]$ 

更新: 检查以确认已安装:

点冻结:

[user@server mysite]$ pip2.7 freeze | grep ckeditor
django-ckeditor==4.4.7

【问题讨论】:

  • 您可以使用:pip freeze | grep ckeditor 来验证 django-ckeditor 是否已实际安装。此外,检查CKEDITOR_UPLOAD_PATH 变量是否设置在settings.py 中。
  • 添加了您的建议,结果相同。
  • 天啊,看起来一切都很好。我建议您使用虚拟环境来隔离您的项目;因为你使用的是python 2.7.9,所以你应该使用virtualenv(你知道pip2.7 install virtualenv),然后使用:virtualenv my_virtual_env创建一个虚拟环境,然后激活虚拟环境:source my_virtual_env/bin/activate,然后安装你要安装的模块在您的项目中使用,即pip install django==1.7 django-ckeditor。最后使用django-admin.py startproject project_name 创建您的项目。
  • 这比你想象的要多得多,这个服务器的设置方式不是我可以放入虚拟环境并快速运行的。
  • Caramba!,当对方不知道整个历史时会发生这种情况。 :)

标签: javascript python django import ckeditor


【解决方案1】:

您的INSTALLED_APPS 中有一个尾随空格:尝试使用'ckeditor' 而不是'ckeditor '

【讨论】:

    猜你喜欢
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多