LoginSignup
2
1

More than 5 years have passed since last update.

Django,nginx,uWSGI,virtualenv ImportError: No module named site解決法メモ

Last updated at Posted at 2017-07-18

エラー

Djangoでアプリを作ってやっとの思いで公開しようと、

sudo /usr/local/bin/uwsgi --ini myapp_uwsgi.ini --uid nginx --gid nginx

とコマンドを叩いたら

Set PythonHome to /home/uesrname/.virtualenvs/virtualenvname
ImportError: No module named site

とエラーが出て動かない。なんてこった。

myapp_uwsgi.iniはこんな感じ

myapp_uwsgi.ini
# myapp_uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /var/www/myapp
# Django's wsgi file
module          = myapp.wsgi
# the virtualenv (full path)
#home            = /usr/local/bin/virtualenv
home            = /home/username/.virtualenvs/virtualenvname

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = /tmp/myapp.sock
# ... with appropriate permissions - may be needed
 chmod-socket    = 666
# clear environment on exit
vacuum          = true

ちなみにsudo抜きで

/usr/local/bin/uwsgi --ini myapp_uwsgi.ini --uid nginx --gid nginx

としたら問題なく動いたので謎は深まるばかり。
ちなみにOSはCentOS6.9。

解決法

パーミッションの問題だったらしくて/home/usernameのパーミッションを700から755に変えたら動いた。
ただsudoなのになぜ動かないのはよくわからない。linuxのカーネルのパーミッションとかクレデンシャルの問題なのでしょうか。

補足

No module named siteという同じエラーでも様々な症状があるらしくてまさにピンポイントの対処方法が検索に引っかからなかった。誰かの役に立てれば。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1