为什么Python找不到我安装的django-lockdown模块?
我有一个Django应用程序,它出问题了,因为找不到我已经安装的一个模块,叫做Django-Lockdown。有人能告诉我怎么解决这个问题吗?
第一步:启动虚拟环境,确保这个模块已经安装:
$ 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:
第二步:运行Python命令行,手动导入这个模块。这样是可以的。
(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()
第三步:启动开发服务器。结果失败了,因为它说找不到这个模块。为什么会这样呢?
(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
1 个回答
1
/opt/virtualEnvs/jobBidSite/lib/python2.7/site-packages
这个模块是在你的虚拟环境的Python包里,而你现在使用的是系统自带的Python,路径是 /usr/local/lib/python2.7/
,用于Django。
不要使用 sudo
,因为那样会让你使用系统的Python。