簡體   English   中英

Django“ get_git_revision失敗:[Errno 2]沒有這樣的文件或目錄:'... /。git / HEAD'”

[英]Django “get_git_revision failed: [Errno 2] No such file or directory: '…/.git/HEAD'”

我最近為Django應用安裝了pybrake ,現在當我運行開發服務器時,看到以下錯誤:

2018-05-29 18:32:13,414-pybrake-錯誤-get_git_revision失敗:[Errno 2]沒有這樣的文件或目錄:'/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'

但是,此后,開發服務器似乎可以正常啟動。 這是完整的終端響應:

(venv) Kurts-MacBook-Pro-2:lucy-web kurtpeek$ python manage.py runserver
2018-05-29 18:32:13,414 - pybrake - ERROR - get_git_revision failed: [Errno 2] No such file or directory: '/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'
2018-05-29 18:32:15,353 - pybrake - ERROR - get_git_revision failed: [Errno 2] No such file or directory: '/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'
Performing system checks...

System check identified no issues (0 silenced).
(0.000) SELECT typarray FROM pg_type WHERE typname = 'citext'; args=None
(0.006) 
            SELECT c.relname, c.relkind
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid); args=None
(0.031) SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"; args=()
May 29, 2018 - 18:32:17
Django version 1.11.9, using settings 'lucy.settings.development'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

該錯誤仍然讓我有些不適,我想將其刪除。 似乎此get_git_revision函數在錯誤的目錄中查找: .git目錄位於lucy2 ,而不是在lucy2/lucy-web

但是,我實際上無法弄清楚該錯誤的get_git_revision :我在項目范圍內搜索了get_git_revision但沒有找到任何東西。 如何找出此錯誤的根源?

如錯誤消息的格式所建議,該錯誤實際上是由pybrake本身引發的。 通過檢查源代碼( https://github.com/airbrake/pybrake/blob/master/pybrake/notifier.py ),我發現可以將(未記錄) root_directory密鑰傳遞給AIRBRAKE設置,就像這樣:

AIRBRAKE = dict(
    project_id=os.getenv('AIRBRAKE_API_KEY'),
    project_key=os.getenv('AIRBRAKE_PROJECT_ID'),
    root_directory=os.path.dirname(os.path.dirname(BASE_DIR)))

適當選擇root_directory包含.git目錄。 現在,我可以正確運行開發服務器了:

(venv) Kurts-MacBook-Pro-2:lucy-web kurtpeek$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
(0.000) SELECT typarray FROM pg_type WHERE typname = 'citext'; args=None
(0.006) 
            SELECT c.relname, c.relkind
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid); args=None
(0.001) SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"; args=()
May 29, 2018 - 19:12:30
Django version 1.11.9, using settings 'lucy.settings.development'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

順便說一下, os.path.dirname(os.getcwd())也可以在這里工作,因為它從pybrake的默認目錄os.getcwd() pybrake一個目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM