Django项目赢得';t在ubuntu上运行附加安装的应用程序
我的设置Django项目赢得';t在ubuntu上运行附加安装的应用程序,django,python-2.7,ubuntu-12.04,Django,Python 2.7,Ubuntu 12.04,我的设置 本地机器10.9.3 Django 1.6.2-本地机器 服务器Ubuntu 12.04 Django 1.6-ubuntu服务器 在将django项目部署到运行Ubunto 12.04的服务器时,我发现在我的settings.py文件的INSTALLED\u APPS部分中列出了一个额外但不存在的应用程序,这使我无法使用任何python manage.py命令 INSTALLED_APPS = ( 'django.contrib.admin', 'django.c
- 本地机器10.9.3
- Django 1.6.2-本地机器
- 服务器Ubuntu 12.04
- Django 1.6-ubuntu服务器
settings.py
文件的INSTALLED\u APPS
部分中列出了一个额外但不存在的应用程序,这使我无法使用任何python manage.py
命令
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
'survey',
'django_countries',
)
在本例中,我以前在项目中有一个django_countries
应用程序,后来我将其删除。然而,这从未阻止我在本地机器上使用任何python manage.py
命令OSX 10.9.3
但是,当我将项目上载到生产服务器时,会出现错误,例如运行python manage.py runserver
会让我
$ 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 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 django_countries
$python manage.py运行服务器
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/usr/local/lib/python2.7/dist-packages/django/core/management/__-init__;.py”,第399行,从命令行执行
utility.execute()
文件“/usr/local/lib/python2.7/dist packages/django/core/management/__init__.py”,第392行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/usr/local/lib/python2.7/dist-packages/django/core/management/base.py”,第242行,从_argv运行
self.execute(*args,**选项._dict__;
文件“/usr/local/lib/python2.7/dist packages/django/core/management/base.py”,执行中第280行
翻译。激活('en-us')
文件“/usr/local/lib/python2.7/dist-packages/django/utils/translation/_-init__.py”,第130行,在activate中
返回_trans.activate(语言)
文件“/usr/local/lib/python2.7/dist packages/django/utils/translation/trans_real.py”,第188行,在activate中
_active.value=翻译(语言)
文件“/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py”,第177行,翻译版
默认\u translation=\u fetch(settings.LANGUAGE\u代码)
文件“/usr/local/lib/python2.7/dist packages/django/utils/translation/trans_real.py”,第159行,在_fetch中
app=导入模块(appname)
文件“/usr/local/lib/python2.7/dist packages/django/utils/importlib.py”,第40行,在导入模块中
__导入(名称)
ImportError:没有名为django_的模块
当然,在
settings.py
中删除不必要的django_countries
应用程序解决了我的问题,但我想知道:为什么这两种环境不同?是否还有其他重大差异需要我注意 这完全是意料之中的行为-INSTALLED\u APPS
定义了您已安装的应用程序,Django尝试查找它们的模型、URL等。如果它找不到任何已安装的应用程序,您将收到此错误。将其从安装的应用程序中删除或安装
而且看起来你没有使用VirtualEnv。学习如何使用它,并将其用于每个项目,否则您很快就会发疯。)根据我的问题:“当然,在settings.py中删除不必要的django_countries应用程序解决了我的问题,但我想知道:为什么这两个环境之间存在差异?”感谢您提供有关
virtualenv
的提示,我已经使用了一段时间,发现它非常棒。区别在于django_国家/地区
在默认情况下没有捆绑在您的系统中,而您(或其他人)在您的一台计算机上安装了它,但在另一台计算机上没有安装。因此,尽管我几周前从项目中删除了它,但它仍然可以在我的系统中找到它,因此允许它在本地运行。但当我上传项目时,它却找不到。