【发布时间】: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