です作業ディレクトリにファイルを作成します。gunicornは、私はシンプルなPythonのプログラムを書いた腐敗のsys.path
# /tmp/Code.py
print "I never said to search CWD!!! Your Python is broken."
import sys
print sys.path
結果は上記と同じです。exp影響を受けた。私はgunicornで実行したときに
はしかし、私が取得:
max% gunicorn Main:app
2017-08-08 10:30:53 [26913] [INFO] Starting gunicorn 17.5
2017-08-08 10:30:53 [26913] [INFO] Listening at: http://127.0.0.1:8000 (26913)
2017-08-08 10:30:53 [26913] [INFO] Using worker: sync
2017-08-08 10:30:53 [26918] [INFO] Booting worker with pid: 26918
I never said to search CWD!!! Your Python is broken.
['/tmp',
'/usr/bin',
'/tmp/src',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
gunicornがランダムのsys.pathにPWDを追加することを決定したことが表示されます。ガンコーンのマンページにこれについては何もない。
pythonの構成:
Flask==0.10.1
Jinja2==2.7.2
MarkupSafe==0.18
PAM==0.4.2
Pillow==2.3.0
Twisted-Core==13.2.0
Twisted-Web==13.2.0
Werkzeug==0.9.4
adium-theme-ubuntu==0.3.4
apt-xapian-index==0.45
argparse==1.2.1
blinker==1.3
chardet==2.0.1
colorama==0.2.5
command-not-found==0.3
debtagshw==0.1
defer==1.0.6
dirspec==13.10
duplicity==0.6.23
gevent==1.0
greenlet==0.4.2
gunicorn==17.5
html5lib==0.999
httplib2==0.8
itsdangerous==0.22
lockfile==0.8
lxml==3.3.3
oauthlib==0.6.1
oneconf==0.3.7.14.04.1
pexpect==3.1
piston-mini-client==0.7.5
pyOpenSSL==0.13
pycrypto==2.6.1
pycups==1.9.66
pygobject==3.12.0
pyinotify==0.9.4
pyserial==2.6
pysmbc==1.0.14.1
python-apt==0.9.3.5ubuntu2
python-debian==0.1.21-nmu2ubuntu2
pyxdg==0.25
reportlab==3.0
requests==2.2.1
sessioninstaller==0.0.0
simplejson==3.3.1
six==1.5.2
software-center-aptd-plugins==0.0.0
ssh-import-id==3.21
system-service==0.1.6
unity-lens-photos==1.0
urllib3==1.7.1
wheel==0.24.0
wsgiref==0.1.2
xdiagnose==3.6.3build2
zope.interface==4.0.5
私はrealpath(p) == realpath('.')
を検索してのsys.pathからPWDを削除する可能性が知っているが、時には我々はPYTHONPATHにPWDをしたいです。したがって、より慎重な解決が必要です。理想的には、どのソフトウェアがバグを導入しているのか把握しようとします。単純にgunicornのマンページが不完全であるかもしれませんか?
'' gunicorn --pythonpath src'が 'setenv PYTHONPATH src'よりもうまく機能しています。私はガンコンが実際のドキュメンテーションをしたかったのです。 –
これは、gunicornがPWDの前に '--pythonpath'を追加してから' PYTHONPATH'を追加しているようです。ですから、 ' - pythonpath $ PYTHONPATH'で常にgunicornを実行するのが一般的な解決策になります。これは本当にマンページに追加する必要があります。 –
は、質問に対する答えとしてどのように問題を解決したのかを説明し、それを承認します。 – marcusshep