我有一个 Django 应用程序失败,因为它找不到我安装的模块。它叫做 Django-Lockdown。有人可以告诉我如何解决这个问题吗?
第 1 步:启动 virtualEnv 并确保已安装该模块:
$ source /opt/virtualEnvs/myApp/bin/activate
(myApp)$ pip -r requirements.txt
<SNIPPED>
(myApp)$ pip show django-lockdown
---
Name: django-lockdown
Version: 1.0
Location: /opt/virtualEnvs/jobBidSite/lib/python2.7/site-packages/django_lockdown-1.0-py2.7.egg
Requires:
第 2 步:运行 python shell 并手动导入此模块。它有效。
(myApp)$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lockdown
>>> exit()
第 3 步:启动开发服务器。它失败了,因为它说找不到这个模块。为什么?
(myApp)$ sudo python ./manage.py runserver 0.0.0.0:80
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 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute
translation.activate('en-us')
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate
return _trans.activate(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate
_active.value = translation(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ImportError: No module named lockdown
请您参考如下方法:
/opt/virtualEnvs/jobBidSite/lib/python2.7/site-packages 该模块在你的 virtualenv python 包中,你正在使用系统 python /usr/local/lib/python2.7/ 用于 Django。
不要使用sudo,它运行的是系统python。
