django模块是否全局 - ImportError:没有名为django.core.management的模块?

时间:2017-05-18 20:25:48

标签: python django

我对django的工作方式很困惑。我按照一些指南测试了一个示例应用程序并让它在我的本地开发机上运行。它很棒。但是当我将这个示例应用程序移动到我的生产服务器时,我收到了这个错误:

$ sudo apt-get install python-django

所以,在我为示例应用程序设置的过程中,我做到了这一点:

$ django-admin startproject helloapp

然后:

$ cd /var/www/html/django-project/helloapp/

然后:

$ python manage.py runserver

然后:

# cd /var/www/html/helloapp
# python manage.py runserver

结果:

  

有效!祝贺你的第一个Django页面。

所以,我将文件helloapp /传输到我的生产服务器:

python-django

然后出现错误:

  

没有名为django.core.management的模块

我是否必须在生产服务器中安装django.core.management - “global”作为我的生产服务器中的系统软件之一?

实际上python-django是什么?可能有很多这种模块我需要运行我的应用程序。那么这些模块来自django的“全球”呢?

如果我的系统损坏或我有一天删除了gunicorn,我的所有django应用程序也会破坏?

修改

我使用虚拟环境运行它,但它似乎与$ gunicorn helloapp.wsgi [2017-05-18 22:33:37 +0000] [882] [INFO] Starting gunicorn 19.6.0 [2017-05-18 22:33:37 +0000] [882] [INFO] Listening at: http://127.0.0.1:8000 (882) [2017-05-18 22:33:37 +0000] [882] [INFO] Using worker: sync [2017-05-18 22:33:37 +0000] [886] [INFO] Booting worker with pid: 886 [2017-05-18 22:33:37 +0000] [886] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 557, in spawn_worker worker.init_process() File "/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 126, in init_process self.load_wsgi() File "/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 136, in load_wsgi self.wsgi = self.app.wsgi() File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load return self.load_wsgiapp() File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/lib/python2.7/dist-packages/gunicorn/util.py", line 384, in import_app __import__(module) File "/var/www/html/django-project/helloapp/helloapp/wsgi.py", line 12, in <module> from django.core.wsgi import get_wsgi_application ImportError: No module named django.core.wsgi [2017-05-18 22:33:37 +0000] [886] [INFO] Worker exiting (pid: 886) [2017-05-18 22:33:37 +0000] [882] [INFO] Shutting down: Master [2017-05-18 22:33:37 +0000] [882] [INFO] Reason: Worker failed to boot. 有问题:

Process.Start()

3 个答案:

答案 0 :(得分:1)

您能否确认已安装Django

sudo pip install django --upgrade 

要使用virtualenv,请先安装

pip install virtualenv

创建一个新的env(不应该在Django项目中)

virtualenv my_env

在此文件夹中,您可以激活env

. bin/activate

一旦env处于活动状态,就安装django

pip install django

然后返回django项目并运行

python manage.py runserver 

应该有效

More info here

答案 1 :(得分:1)

是的,您必须在生产服务器上安装django。 我个人使用虚拟环境来试试这个问题,试试

sudo apt-get install python-virtualenv
virtualenv env_name
source env_name/bin/activate

完成后,您应该会在pwd前面看到您的环境名称。这将允许您仅在该环境中安装python包。但是,当然,您还必须在生产服务器中使用它......

答案 2 :(得分:0)

  

我是否必须在生产服务器中安装python-django

是的,必须以与在开发服务器上安装相同的方式在生产服务器上安装django