使用uwsgi代理mezzanine站点发生import error的解决办法

尝试用uwsgi代理mezzanine站点时Server internal error,查看服务器命令行发现Import Error,比如:

ImportError: No module named mezzsite.settings
ImportError: No module named mezzsite.urls

这是因为,在创建mezzanine项目时,会有一个问题,比如我们创建一个mezzanine项目用于测试:

(mezzanine) [root@192 mezzanine]# mezzanine-project testmezz

创建项目后,会生成一个目录叫testmezz

(mezzanine) [root@192 mezzanine]# ll
total 12
drwxrwxrwx. 2 root root 4096 Dec 6 23:36 bin
drwxrwxrwx. 2 root root 23 Nov 29 23:29 include
drwxrwxrwx. 3 root root 23 Nov 29 23:29 lib
lrwxrwxrwx. 1 root root 3 Nov 29 23:29 lib64 -> lib
drwxrwxrwx. 9 root root 4096 Dec 7 00:07 mezzsite
-rwxrwxrwx. 1 root root 60 Dec 6 23:36 pip-selfcheck.json
drwxr-xr-x 4 root root 149 Dec 7 00:00 testmezz

进入这个testmezz目录,会发现里面还有一个同名的目录,也叫testmezz

(mezzanine) [root@192 mezzanine]# cd testmezz/
(mezzanine) [root@192 testmezz]# ll
total 32
drwxr-xr-x 2 root root 156 Dec 7 00:00 deploy
-rwxrwxrwx 1 root root 21951 Dec 7 00:00 fabfile.py
-rwxrwxrwx 1 root root 0 Dec 7 00:00 __init__.py
-rwxrwxrwx 1 root root 372 Dec 7 00:00 manage.py
-rwxrwxrwx 1 root root 17 Dec 7 00:00 requirements.txt
drwxr-xr-x 2 root root 99 Dec 7 00:00 testmezz

再进入这个testmezz目录,会发现里面有一些文件:

(mezzanine) [root@192 testmezz]# cd testmezz/
(mezzanine) [root@192 testmezz]# ll
total 28
-rwxrwxrwx 1 root root 0 Dec 7 00:00 __init__.py
-rwxrwxrwx 1 root root 1609 Dec 7 00:00 local_settings.py
-rwxrwxrwx 1 root root 11641 Dec 7 00:00 settings.py
-rwxrwxrwx 1 root root 4272 Dec 7 00:00 urls.py
-rwxrwxrwx 1 root root 493 Dec 7 00:00 wsgi.py

问题就在于这两个同名的文件夹,当程序调用里面的testmezz目录下的这几个py模块时,程序只知道是testmezz.xxx.py,会认为这个testmezz是外层的那个testmezz目录,当在外层目录下找不到这些py模块时就会出现ImportError,解决办法就是把内层目录下的这些文件(除了__init__.py之外,因为外层目录下已经存在)全部复制到外城的testmezz目录下即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eponia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值