ImportError:没有名为os uwsgi + django + linux的模块

时间:2014-09-10 04:55:39

标签: python django nginx wsgi uwsgi

我正在尝试使用nginx配置uswgi

我遵循的步骤是:

安装NGINX

sudo yum install nginx
sudo /etc/init.d/nginx start &

yum -y install python-pip

安装Python

wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar -xzf Python-2.7.6.tgz  
cd Python-2.7.6
./configure  
make  
sudo make install  

安装Uwsgi

pip install uwsgi

安装Django

sudo pip install git+https://github.com/django-nonrel/django

命令

uwsgi --socket /tmp/wsgi.sock --module App.wsgi:application --chmod-socket=666 -H /usr/local/bin/python --master --processes 4 --threads 2 &

错误

   "wsgi.py", line 10, in <module>
        import os
    ImportError: No module named os
    unable to load app 0 (mountpoint='') (callable not found or import error)

wsgi.py内容

10: import os
11: os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SecurityInsights.settings")
12:
13: from django.core.wsgi import get_wsgi_application
14: application = get_wsgi_application()

在控制台

中加载os模块时没有问题
/usr/local/bin/python
Python 2.7.6 (default, Sep  9 2014, 18:55:35) 
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>>

编辑

根据@ZZY suggesstion我检查了python manage.py shell中的python版本,它与全局2.7.6不同2.6.9。这有什么不同吗?

1 个答案:

答案 0 :(得分:1)

假设您确实需要在Python2.7中运行所有内容。然后你可以尝试用Python27支持重新安装uwsgi:

sudo pip uninstall uwsgi

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
sudo python2.7 uwsgiconfig.py --plugin plugins/python core python27
make

另一种可能的解决方案:按照此guide安装pip2.7,然后使用pip2.7安装所有内容(uwsgi,Django,...)。
该指南还介绍了 virtualenv ,它是一个强烈推荐的Python开发工具。正如名称所示,它创建了单独的“python包空间”,因此您可以在计算机中为不同的项目使用不同版本的Django或任何Python包。