-
-
Notifications
You must be signed in to change notification settings - Fork 224
Expand file tree
/
Copy pathdevmode.po
More file actions
490 lines (432 loc) · 17.2 KB
/
devmode.po
File metadata and controls
490 lines (432 loc) · 17.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
# Copyright (C) 2001 Python Software Foundation
# This file is distributed under the same license as the Python package.
#
# Translators:
# Matt Wang <[email protected]>, 2024
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.14\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-01 22:24+0800\n"
"PO-Revision-Date: 2024-05-03 02:14+0800\n"
"Last-Translator: Matt Wang <[email protected]>\n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../library/devmode.rst:4
msgid "Python Development Mode"
msgstr "Python 開發模式"
#: ../../library/devmode.rst:8
msgid ""
"The Python Development Mode introduces additional runtime checks that are "
"too expensive to be enabled by default. It should not be more verbose than "
"the default if the code is correct; new warnings are only emitted when an "
"issue is detected."
msgstr ""
"Python 開發模式引入了額外的 runtime 檢查,預設啟用這些檢查的成本太高。如果程"
"式碼正確,它不應比預設值更詳細;僅當偵測到問題時才會發出新警告。"
#: ../../library/devmode.rst:13
msgid ""
"It can be enabled using the :option:`-X dev <-X>` command line option or by "
"setting the :envvar:`PYTHONDEVMODE` environment variable to ``1``."
msgstr ""
"可以使用 :option:`-X dev <-X>` 命令列選項或將 :envvar:`PYTHONDEVMODE` 環境變"
"數設為 1 來啟用它。"
#: ../../library/devmode.rst:16
msgid "See also :ref:`Python debug build <debug-build>`."
msgstr "另請參閱 :ref:`Python 除錯建置 <debug-build>`。"
#: ../../library/devmode.rst:19
msgid "Effects of the Python Development Mode"
msgstr "Python 開發模式的影響"
#: ../../library/devmode.rst:21
msgid ""
"Enabling the Python Development Mode is similar to the following command, "
"but with additional effects described below::"
msgstr "啟用 Python 開發模式類似以下指令,但具有如下所述的附加效果:"
#: ../../library/devmode.rst:24
msgid ""
"PYTHONMALLOC=debug PYTHONASYNCIODEBUG=1 python -W default -X faulthandler"
msgstr ""
"PYTHONMALLOC=debug PYTHONASYNCIODEBUG=1 python -W default -X faulthandler"
#: ../../library/devmode.rst:26
msgid "Effects of the Python Development Mode:"
msgstr "Python 開發模式的效果:"
#: ../../library/devmode.rst:28
msgid ""
"Add ``default`` :ref:`warning filter <describing-warning-filters>`. The "
"following warnings are shown:"
msgstr ""
"新增 ``default`` :ref:`警告過濾器 <describing-warning-filters>`。以下警告會被"
"顯示:"
#: ../../library/devmode.rst:31
msgid ":exc:`DeprecationWarning`"
msgstr ":exc:`DeprecationWarning`"
#: ../../library/devmode.rst:32
msgid ":exc:`ImportWarning`"
msgstr ":exc:`ImportWarning`"
#: ../../library/devmode.rst:33
msgid ":exc:`PendingDeprecationWarning`"
msgstr ":exc:`PendingDeprecationWarning`"
#: ../../library/devmode.rst:34
msgid ":exc:`ResourceWarning`"
msgstr ":exc:`ResourceWarning`"
#: ../../library/devmode.rst:36
msgid ""
"Normally, the above warnings are filtered by the default :ref:`warning "
"filters <describing-warning-filters>`."
msgstr ""
"一般來說,上述警告會被預設的\\ :ref:`警告過濾器 <describing-warning-"
"filters>`\\ 給過濾掉。"
#: ../../library/devmode.rst:39
msgid ""
"It behaves as if the :option:`-W default <-W>` command line option is used."
msgstr "它的行為就像使用 :option:`-W default <-W>` 命令列選項一樣。"
#: ../../library/devmode.rst:41
msgid ""
"Use the :option:`-W error <-W>` command line option or set the :envvar:"
"`PYTHONWARNINGS` environment variable to ``error`` to treat warnings as "
"errors."
msgstr ""
"使用 :option:`-W error <-W>` 命令列選項或將 :envvar:`PYTHONWARNINGS` 環境變數"
"設為 ``error`` 會將警告視為錯誤。"
#: ../../library/devmode.rst:45
msgid "Install debug hooks on memory allocators to check for:"
msgstr "在記憶體分配器上安裝除錯 hook(掛鉤)以檢查:"
#: ../../library/devmode.rst:47
msgid "Buffer underflow"
msgstr "緩衝區下溢 (underflow)"
#: ../../library/devmode.rst:48
msgid "Buffer overflow"
msgstr "緩衝區溢位 (overflow)"
#: ../../library/devmode.rst:49
msgid "Memory allocator API violation"
msgstr "記憶體分配器 API 違規"
#: ../../library/devmode.rst:50
msgid "Unsafe usage of the GIL"
msgstr "GIL 的不安全使用"
#: ../../library/devmode.rst:52
msgid "See the :c:func:`PyMem_SetupDebugHooks` C function."
msgstr "請參閱 :c:func:`PyMem_SetupDebugHooks` C 函式。"
#: ../../library/devmode.rst:54
msgid ""
"It behaves as if the :envvar:`PYTHONMALLOC` environment variable is set to "
"``debug``."
msgstr ""
"它的行為就好像是將 :envvar:`PYTHONMALLOC` 環境變數設定為 ``debug`` 一樣。"
#: ../../library/devmode.rst:57
msgid ""
"To enable the Python Development Mode without installing debug hooks on "
"memory allocators, set the :envvar:`PYTHONMALLOC` environment variable to "
"``default``."
msgstr ""
"若要啟用 Python 開發模式而不在記憶體分配器上安裝偵錯 hook,請將 :envvar:"
"`PYTHONMALLOC` 環境變數設為 ``default``。"
#: ../../library/devmode.rst:61
msgid ""
"Call :func:`faulthandler.enable` at Python startup to install handlers for "
"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal."
"SIGABRT`, :const:`~signal.SIGBUS` and :const:`~signal.SIGILL` signals to "
"dump the Python traceback on a crash."
msgstr ""
"在 Python 啟動時呼叫 :func:`faulthandler.enable` 來為 :const:`~signal."
"SIGSEGV`、:const:`~signal.SIGFPE`、:const:`~signal.SIGABRT`、:const:`~signal."
"SIGBUS` 和 :const:`~signal.SIGILL` 訊號安裝處理函式以在當機時傾印 (dump) "
"Python 回溯 (traceback)。"
#: ../../library/devmode.rst:66
msgid ""
"It behaves as if the :option:`-X faulthandler <-X>` command line option is "
"used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to "
"``1``."
msgstr ""
"它的行為就像使用 :option:`-X faulthandler <-X>` 命令列選項或將 :envvar:"
"`PYTHONFAULTHANDLER` 環境變數設定為 ``1``。"
#: ../../library/devmode.rst:70
msgid ""
"Enable :ref:`asyncio debug mode <asyncio-debug-mode>`. For example, :mod:"
"`asyncio` checks for coroutines that were not awaited and logs them."
msgstr ""
"啟用 :ref:`asyncio 除錯模式 <asyncio-debug-mode>`。例如 :mod:`asyncio` 會檢查"
"未被等待的 (not awaited) 協程並記錄 (log) 它們。"
#: ../../library/devmode.rst:73
msgid ""
"It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is "
"set to ``1``."
msgstr "它的行為就像將 :envvar:`PYTHONASYNCIODEBUG` 環境變數設定為 1 一樣。"
#: ../../library/devmode.rst:76
msgid ""
"Check the *encoding* and *errors* arguments for string encoding and decoding "
"operations. Examples: :func:`open`, :meth:`str.encode` and :meth:`bytes."
"decode`."
msgstr ""
"檢查字串編碼和解碼操作的 *encoding* 和 *errors* 引數。例如::func:`open`、:"
"meth:`str.encode` 和 :meth:`bytes.decode`。"
#: ../../library/devmode.rst:80
msgid ""
"By default, for best performance, the *errors* argument is only checked at "
"the first encoding/decoding error and the *encoding* argument is sometimes "
"ignored for empty strings."
msgstr ""
"預設情況下,為了獲得最佳效能,僅在第一個編碼/解碼錯誤時檢查 *errors* 引數,並"
"且有時會因為是空字串而忽略 *encoding* 引數。"
#: ../../library/devmode.rst:84
msgid "The :class:`io.IOBase` destructor logs ``close()`` exceptions."
msgstr ":class:`io.IOBase` 解構函式會記錄 ``close()`` 例外。"
#: ../../library/devmode.rst:85
msgid ""
"Set the :attr:`~sys.flags.dev_mode` attribute of :data:`sys.flags` to "
"``True``."
msgstr ""
"將 :data:`sys.flags` 的 :attr:`~sys.flags.dev_mode` 屬性設為 ``True``。"
#: ../../library/devmode.rst:88
msgid ""
"The Python Development Mode does not enable the :mod:`tracemalloc` module by "
"default, because the overhead cost (to performance and memory) would be too "
"large. Enabling the :mod:`tracemalloc` module provides additional "
"information on the origin of some errors. For example, :exc:"
"`ResourceWarning` logs the traceback where the resource was allocated, and a "
"buffer overflow error logs the traceback where the memory block was "
"allocated."
msgstr ""
"Python 開發模式預設不會啟用 :mod:`tracemalloc` 模組,因為(效能和記憶體的)開"
"銷太大。啟用 :mod:`tracemalloc` 模組可提供有關某些錯誤來源的附加資訊。例如 :"
"exc:`ResourceWarning` 記錄了分配資源之處的回溯、緩衝區溢位錯誤記錄了分配記憶"
"體區塊的回溯。"
#: ../../library/devmode.rst:95
msgid ""
"The Python Development Mode does not prevent the :option:`-O` command line "
"option from removing :keyword:`assert` statements nor from setting :const:"
"`__debug__` to ``False``."
msgstr ""
"Python 開發模式不會防止 :option:`-O` 命令列選項刪除 :keyword:`assert` 陳述"
"式,也不會防止將 :const:`__debug__` 設定為 ``False``。"
#: ../../library/devmode.rst:99
msgid ""
"The Python Development Mode can only be enabled at the Python startup. Its "
"value can be read from :data:`sys.flags.dev_mode <sys.flags>`."
msgstr ""
"Python 開發模式只能在 Python 啟動時啟用。它的值可以從 :data:`sys.flags."
"dev_mode <sys.flags>` 讀取。"
#: ../../library/devmode.rst:102
msgid "The :class:`io.IOBase` destructor now logs ``close()`` exceptions."
msgstr ":class:`io.IOBase` 解構函式現在會記錄 ``close()`` 例外。"
#: ../../library/devmode.rst:105
msgid ""
"The *encoding* and *errors* arguments are now checked for string encoding "
"and decoding operations."
msgstr "現在會為字串編碼和解碼操作檢查 *encoding* 和 *errors* 引數。"
#: ../../library/devmode.rst:111
msgid "ResourceWarning Example"
msgstr "ResourceWarning 範例"
#: ../../library/devmode.rst:113
msgid ""
"Example of a script counting the number of lines of the text file specified "
"in the command line::"
msgstr "計算命令列中指定的文字檔案列數的腳本範例: ::"
#: ../../library/devmode.rst:116
msgid ""
"import sys\n"
"\n"
"def main():\n"
" fp = open(sys.argv[1])\n"
" nlines = len(fp.readlines())\n"
" print(nlines)\n"
" # The file is closed implicitly\n"
"\n"
"if __name__ == \"__main__\":\n"
" main()"
msgstr ""
"import sys\n"
"\n"
"def main():\n"
" fp = open(sys.argv[1])\n"
" nlines = len(fp.readlines())\n"
" print(nlines)\n"
" # The file is closed implicitly\n"
"\n"
"if __name__ == \"__main__\":\n"
" main()"
#: ../../library/devmode.rst:127
msgid ""
"The script does not close the file explicitly. By default, Python does not "
"emit any warning. Example using README.txt, which has 269 lines:"
msgstr ""
"該腳本不會明確關閉檔案。預設情況下,Python 不會發出任何警告。使用 README.txt "
"的範例,該檔案有 269 列:"
#: ../../library/devmode.rst:130
msgid ""
"$ python script.py README.txt\n"
"269"
msgstr ""
"$ python script.py README.txt\n"
"269"
#: ../../library/devmode.rst:135
msgid ""
"Enabling the Python Development Mode displays a :exc:`ResourceWarning` "
"warning:"
msgstr "啟用 Python 開發模式會顯示 :exc:`ResourceWarning` 警告:"
#: ../../library/devmode.rst:137
msgid ""
"$ python -X dev script.py README.txt\n"
"269\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README."
"rst' mode='r' encoding='UTF-8'>\n"
" main()\n"
"ResourceWarning: Enable tracemalloc to get the object allocation traceback"
msgstr ""
"$ python -X dev script.py README.txt\n"
"269\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README."
"rst' mode='r' encoding='UTF-8'>\n"
" main()\n"
"ResourceWarning: Enable tracemalloc to get the object allocation traceback"
#: ../../library/devmode.rst:145
msgid ""
"In addition, enabling :mod:`tracemalloc` shows the line where the file was "
"opened:"
msgstr "此外,啟用 :mod:`tracemalloc` 會顯示檔案被開啟的那一列:"
#: ../../library/devmode.rst:148
msgid ""
"$ python -X dev -X tracemalloc=5 script.py README.rst\n"
"269\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README."
"rst' mode='r' encoding='UTF-8'>\n"
" main()\n"
"Object allocated at (most recent call last):\n"
" File \"script.py\", lineno 10\n"
" main()\n"
" File \"script.py\", lineno 4\n"
" fp = open(sys.argv[1])"
msgstr ""
"$ python -X dev -X tracemalloc=5 script.py README.rst\n"
"269\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README."
"rst' mode='r' encoding='UTF-8'>\n"
" main()\n"
"Object allocated at (most recent call last):\n"
" File \"script.py\", lineno 10\n"
" main()\n"
" File \"script.py\", lineno 4\n"
" fp = open(sys.argv[1])"
#: ../../library/devmode.rst:160
msgid ""
"The fix is to close explicitly the file. Example using a context manager::"
msgstr "修復方法是明確關閉該檔案。以下是使用情境管理器的範例: ::"
#: ../../library/devmode.rst:162
msgid ""
"def main():\n"
" # Close the file explicitly when exiting the with block\n"
" with open(sys.argv[1]) as fp:\n"
" nlines = len(fp.readlines())\n"
" print(nlines)"
msgstr ""
"def main():\n"
" # 在退出 with 區塊時明確關閉檔案\n"
" with open(sys.argv[1]) as fp:\n"
" nlines = len(fp.readlines())\n"
" print(nlines)"
#: ../../library/devmode.rst:168
msgid ""
"Not closing a resource explicitly can leave a resource open for way longer "
"than expected; it can cause severe issues upon exiting Python. It is bad in "
"CPython, but it is even worse in PyPy. Closing resources explicitly makes an "
"application more deterministic and more reliable."
msgstr ""
"不明確關閉資源可能會使資源開啟的時間比預期的長得多;它可能會在退出 Python 時"
"導致嚴重問題。在 CPython 中很糟糕,但在 PyPy 中更糟。明確關閉資源使應用程式更"
"具確定性和可靠性。"
#: ../../library/devmode.rst:175
msgid "Bad file descriptor error example"
msgstr "檔案描述器的錯誤範例"
#: ../../library/devmode.rst:177
msgid "Script displaying the first line of itself::"
msgstr "顯示自身第一列的腳本: ::"
#: ../../library/devmode.rst:179
msgid ""
"import os\n"
"\n"
"def main():\n"
" fp = open(__file__)\n"
" firstline = fp.readline()\n"
" print(firstline.rstrip())\n"
" os.close(fp.fileno())\n"
" # The file is closed implicitly\n"
"\n"
"main()"
msgstr ""
"import os\n"
"\n"
"def main():\n"
" fp = open(__file__)\n"
" firstline = fp.readline()\n"
" print(firstline.rstrip())\n"
" os.close(fp.fileno())\n"
" # 檔案是隱式關閉的\n"
"\n"
"main()"
#: ../../library/devmode.rst:190
msgid "By default, Python does not emit any warning:"
msgstr "預設情況下,Python 不會發出任何警告:"
#: ../../library/devmode.rst:192
msgid ""
"$ python script.py\n"
"import os"
msgstr ""
"$ python script.py\n"
"import os"
#: ../../library/devmode.rst:197
msgid ""
"The Python Development Mode shows a :exc:`ResourceWarning` and logs a \"Bad "
"file descriptor\" error when finalizing the file object:"
msgstr ""
"Python 開發模式在最終化 (finalize) 檔案物件時顯示 :exc:`ResourceWarning` 並記"
"錄 \"Bad file descriptor\" 錯誤:"
#: ../../library/devmode.rst:200
msgid ""
"$ python -X dev script.py\n"
"import os\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='script."
"py' mode='r' encoding='UTF-8'>\n"
" main()\n"
"ResourceWarning: Enable tracemalloc to get the object allocation traceback\n"
"Exception ignored in: <_io.TextIOWrapper name='script.py' mode='r' "
"encoding='UTF-8'>\n"
"Traceback (most recent call last):\n"
" File \"script.py\", line 10, in <module>\n"
" main()\n"
"OSError: [Errno 9] Bad file descriptor"
msgstr ""
"$ python -X dev script.py\n"
"import os\n"
"script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='script."
"py' mode='r' encoding='UTF-8'>\n"
" main()\n"
"ResourceWarning: Enable tracemalloc to get the object allocation traceback\n"
"Exception ignored in: <_io.TextIOWrapper name='script.py' mode='r' "
"encoding='UTF-8'>\n"
"Traceback (most recent call last):\n"
" File \"script.py\", line 10, in <module>\n"
" main()\n"
"OSError: [Errno 9] Bad file descriptor"
#: ../../library/devmode.rst:213
msgid ""
"``os.close(fp.fileno())`` closes the file descriptor. When the file object "
"finalizer tries to close the file descriptor again, it fails with the ``Bad "
"file descriptor`` error. A file descriptor must be closed only once. In the "
"worst case scenario, closing it twice can lead to a crash (see :issue:"
"`18748` for an example)."
msgstr ""
"``os.close(fp.fileno())`` 會關閉檔案描述器。當檔案物件最終化函式 (finalizer) "
"嘗試再次關閉檔案描述器時,它會失敗並出現 ``Bad file descriptor`` 錯誤。檔案描"
"述器只能關閉一次。在最壞的情況下,將它關閉兩次可能會導致崩潰 (crash)(相關範"
"例請參閱 :issue:`18748`)。"
#: ../../library/devmode.rst:219
msgid ""
"The fix is to remove the ``os.close(fp.fileno())`` line, or open the file "
"with ``closefd=False``."
msgstr ""
"修復方法是刪除 ``os.close(fp.fileno())`` 那列,或使用 ``closefd=False`` 開啟"
"檔案。"