繁体   English   中英

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

[英]uwsgi + django : ImportError: no module named OS

===============更新===================

我尝试从ini文件中注释掉home,pythonpath,virtualenv和env变量,并在wsgi.py中设置PYTHONPATH,如下所示:

os.environ.setdefault("PYTHONPATH", "/root/virtual_env")

但是,我收到了这个新错误:

> ImportError:没有名为django.core.wsgi的模块

因此,为了解决这个新问题,我创建了一个.pth文件并将其放置在包含以下内容的虚拟环境的站点软件包(即/root/virtual_env/lib/python2.7/site-packages )中:

/root/virtual_env/lib/python2.7/site-packages/django

但是这样做之后,当我运行../bin/uwsgi myproject_uwsgi.ini时,错误仍然存​​在

=====================更新结束======================

在我的虚拟环境中(通过virtualenv),我仍然遇到

ImportError:没有名为os的模块无法加载应用程序0(mountpoint ='')(找不到可调用项或导入错误) *未加载应用程序。 进入全动态模式*

当我运行../bin/uwsgi --ini myproject_uwsgi.ini时。 以下是上述ini的完整内容。 正如您在下面看到的那样,我已经在pythonpath,virtualenv和env变量/参数中进行了放置,以避开该错误。 仍然没有运气。 我该怎么办? 提前致谢!

#myproject_uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /root/virtual_env/myproject
# Django wsgi file
module          = myproject.wsgi:application
# the virtualenv (full path)
home            = /root/virtual_env/myproject
pythonpath      = /root/virtual_env/myproject
virtualenv      = /root/virtual_env/myproject
env             = DJANGO_SETTINGS_MODULE=myproject.settings

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 4
# the socket (use the full path to be safe
socket          = /root/virtual_env/myproject/myproject.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 777
chown-socket    = uwsgi:uwsgi
# clear environment on exit
vacuum          = true

# other config options
uid = uwsgi
gid = uwsgi
processes = 4
daemonize = /var/log/uwsgi/myproject.log
no-site = true

看来您的virtualenv有问题。

pythonpathvirtualenv不应该相等。 Virtualenv应该在您项目的目录中。 例如,如果您的项目位于/ root / myproject中,那么virtualenv应该位于/ root / myproject / virtual_env中。 另外,您的DJANGO_SETTINGS_MODULE不正确。

毕竟,您的uwsgi.ini应该如下所示:

#myproject_uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /root/myproject
# Django wsgi file
module          = wsgi:application
# the virtualenv (full path)
home            = /root/myproject
pythonpath      = /root/myproject
virtualenv      = /root/myproject/virtual_env
env             = DJANGO_SETTINGS_MODULE=settings

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 4
# the socket (use the full path to be safe
socket          = /root/myproject/myproject.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 777
chown-socket    = uwsgi:uwsgi
# clear environment on exit
vacuum          = true

# other config options
uid = uwsgi
gid = uwsgi
processes = 4
daemonize = /var/log/uwsgi/myproject.log
no-site = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM