Python uwcgi問題的解決

2021-07-05 03:59:24 字數 2952 閱讀 8938

web專案基礎搭建出現的問題與解決

本專案為nginx+python+django+uwsgi的環境,基礎資訊介紹如下:

系統:ubuntu 14.04

django:1.6.5

python:2.7.3

uwsgi:0.4.5

2015-09-08

01:47:55 [956] [info] worker exiting (pid: 956)

traceback (most recent call last):

file "/usr/bin/gunicorn", line

9, in

load_entry_point('gunicorn==0.14.5', 'console_scripts', 'gunicorn')()

32, in run

124, in run

arbiter(self).run()

file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line

185, in run

self.halt(reason=inst.reason, exit_status=inst.exit_status)

file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line

280, in halt

self.stop()

file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line

328, in stop

self.reap_workers()

file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line

419, in reap_workers

raise haltserver(reason, self.worker_boot_error)

gunicorn.errors.haltserver: 'worker failed to boot.'

3>

判斷問題思路如下:

1、此日誌資訊無法檢視到詳細錯誤原因;

2、開啟debug級別日誌,檢視詳細錯誤原因;

操作:

1、使用--log-level=debug引數啟動 gunicorn,可以得到日誌如下:

importerror: no module named qssystem.wsgi

2015-09-08 01:47

:55 [955] [info] worker exiting (pid:

955)

2015-09-08 01:47

:55 [954] [debug] exception

in worker process:

traceback (most recent call last):

file

"/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 459, in spawn_worker

worker.init_process()

file

"/usr/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py", line 98, in init_process

super(geventworker, self).init_process()

file

"/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 99, in init_process

file

self.callable = self.load()

file

file

__import__(module)

importerror:no

module

named

qssystem.wsgi

從以上日誌可以檢視出詳細的錯誤資訊,主要為啟動時匯入qssystem.wsgi模組失敗。

解決方法及思路:

1、python中,每個py檔案被稱之為模組,每個具有init.py檔案的目錄被稱為包。只要模組或者包所在的目錄在sys.path中,就可以使用import 模組或import 包來使用。

2、如果想使用非當前模組中的**,需要使用import,這個大家都知道。

如果你要使用的模組(py檔案)和當前模組在同一目錄,只要import相應的檔名就好,比如在a.py中使用b.py:

import b
import qssystem.wsgi
沒有錯誤資訊,此時即可證明以上問題確實為pythonpath引起,但是此設定在推出python之後此配置將失效,如何使本配置永久生效呢;

4、配置pythonpath永久生效: 在python中建立.pth檔案,在檔案中指定路徑即可;

vim /usr/lib/python2.7/dist-packages/python-support

.pth

編輯檔案,將uwsgi.py的路徑加入到此檔案中,重新啟動wsgi即可;

ps:

使用pth檔案,在 site-packages 檔案中建立 .pth檔案,將模組的路徑寫進去,一行乙個路徑,以下是乙個示例,pth檔案也可以使用注釋:

/usr/lib/pymodules/python2.7

/usr/local/qs-project/web

Too many open files 問題的解決

在 etc security limits.conf檔案中設定最大開啟檔案數 設定如下行 nofile 8192 注意 nofile 項有兩個可能的限制措施。就是項下的hard和soft。要使修改過得最大開啟檔案數生效,必須對這兩種限制進行設定。如果使用 字元設定,則hard和soft設定會同時被設...

最優解問題

最優解問題題型隱晦 變化多端,所以總結此類題目的特徵 解法歸類有助於我們更快的想到這類題目的解題方法 佔坑!後續補充 最優解題目特徵 解題思路1 貪心思想 例題 九度oj題目1434 今年暑假不ac 分析過程 乙個節目提供了三個引數 開始時間 結束時間 持續時間。思考開始最早的元素是不是第乙個最優解...

最優解問題

新龜兔賽跑 要求烏龜到達終點的最優解,無非就是貪心,dp,和bfs,dfs.等等方法了,貪心已經排除了,因為我發現,開始的時候我只是把倒數第乙個站點作為終點去考慮,題目中給的測試資料只有三個,當讓是能過的,但是當站點比這多時,這樣做就行不通了,我們只有把每個站點都作為一次終點去考慮,求烏龜到改點時的...