2015-11-11 13 views
10

私は、ubuntuコンテナを新しく作成し、仮想環境に必要なパッケージをインストールしました。それから、私はpython path/to/my/file/X.py(virualenvで)で正常に動作している既存のpythonサービスコードを実行しました。だから私はgunicorn -b 0.0.0.0:5000パス/に/私/ファイル/ Xとしてgunicornで実行している:(virualenv中)アプリが、私はファイル名によるGunicornのインポートはサポートされていません(モジュール)

2015-11-11 16:38:08 [19118] [INFO] Starting gunicorn 17.5 
2015-11-11 16:38:08 [19118] [INFO] Listening at: http://0.0.0.0:444 (19118) 
2015-11-11 16:38:08 [19118] [INFO] Using worker: sync 
2015-11-11 16:38:08 [19123] [INFO] Booting worker with pid: 19123 
2015-11-11 16:38:08 [19123] [ERROR] Exception in worker process: 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 473, in spawn_worker 
    worker.init_process() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 100, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 115, in wsgi 
    self.callable = self.load() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 33, in load 
    return util.import_app(self.app_uri) 
    File "/usr/lib/python2.7/dist-packages/gunicorn/util.py", line 362, in import_app 
    __import__(module) 
ImportError: Import by filename is not supported. 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 473, in spawn_worker 
    worker.init_process() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 100, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 115, in wsgi 
    self.callable = self.load() 
    File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 33, in load 
    return util.import_app(self.app_uri) 
    File "/usr/lib/python2.7/dist-packages/gunicorn/util.py", line 362, in import_app 
    __import__(module) 
ImportError: Import by filename is not supported. 
2015-11-11 16:38:08 [19123] [INFO] Worker exiting (pid: 19123) 
2015-11-11 16:38:09 [19118] [INFO] Shutting down: Master 

は誰も私を修正するのに役立つことができ、次のエラーを取得していますImportError: Import by filename is not supported。それはなぜ来るのですか?私は他のサーバーにgunicornを実装していますが、そこでは正常に動作しています。

答えて

12

ファイルパスでPythonモジュールを参照することはできません。PYTHONPATHにあるディレクトリから始まるドット付きモジュールパスを参照する必要があります。

gunicorn -b 0.0.0.0:5000 path.inside.virtualenv.X:app 
+0

すぐにお返事ありがとうございます。しかし、 'ファイル' /usr/lib/python2.7/dist-packages/gunicorn/util.py "、362行目をimport_appに変更した後も同じエラーが発生しています __import __ ) ImportError:var.www.o9_prod.dev.myprojectenv .__ init __:app 'という名前のモジュールはありません。私はこれでパスを '/usr/lib/python2.7/dist-packages/gunicorn'としていますが、私の仮想環境パスは 'var/www/prod/myvirtualenv/bin'です。私はこのためにこのエラーが発生していますか? – gopinath

+0

これは同じエラーではありません。そしてあなたは私が言ったことをしなかった:パスはvirtualenvのルートからでなければならない。 –

+0

ああ申し訳ありませんが、あなたがgunicornを起動するための正しいコマンドであることを確認してください "gunicorn -b 0.0.0.0:5000 /var/www/prod/myvirtualenv.__init__:app"と私が間違っている場合は私を修正してください – gopinath

0

ただのGooglerのために、私はまた、私が誤って代わりにgunicorn --pasteの-paste gunicorn使用して自分のアプリケーションを実行したときに、このエラーが発生しました。 gunicornはエラーは発生しませんでしたが、api.iniが見つかりませんでした。「ファイル名でインポートできません」というエラーがスローされました。

関連する問題