This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2015年03月28日 10:47 by barry-scott, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| initLocale.py | barry-scott, 2015年03月29日 11:00 | |||
| Messages (6) | |||
|---|---|---|---|
| msg239458 - (view) | Author: Barry Alan Scott (barry-scott) * | Date: 2015年03月28日 10:47 | |
I'm seeing a random traceback when starting a new thread on Mac OS X 10.10.2 with python 3.4.3 final. Exception in thread Thread-1: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py", line 920, in _bootstrap_inner self.run() File "/Users/barry/wc/svn/pysvn-phoenix/WorkBench/Source/wb_background_thread.py", line 40, in run self.app.log.info( 'BackgroundThread locale %r' % (locale.getlocale(),) ) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/locale.py", line 575, in getlocale return _parse_localename(localename) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/locale.py", line 484, in _parse_localename raise ValueError('unknown locale: %s' % localename) ValueError: unknown locale: UTF-8 Adding a time.sleep( 5 ) prevents the traceback. Using _locale.setlocale( locale.LC_ALL, None ) to see the state with locale.py interfering it looks like the locale is being initialised in the thread after run() is called. (Make no sense to me, but I can reproduce). I have failed to create a small script to show this bug. |
|||
| msg239461 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2015年03月28日 17:10 | |
This is probably related to or effectively a duplicate of issue 18378, which looks to be an Apple bug. Do you have the problem if you remove the getlocale() call? |
|||
| msg239464 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2015年03月28日 19:57 | |
The behavior noted in Issue18378 isn't an Apple bug; it's a GNU vs BSD difference. Can you avoid the problem by calling locale.getlocale() in the main program before creating any threads? |
|||
| msg239484 - (view) | Author: Barry Alan Scott (barry-scott) * | Date: 2015年03月29日 11:00 | |
I should point out using Python2.7 with wxPython I do not see this issue. This issue was exposed during my efforts to port pysvn from py2.7+wxPython to py3.4+wxpython-phoenix. I do setup locale on the main thread very early before starting the background thread. I have attached the initLocale() I use. The background thread needs the locale setup and I use getlocale() to prove that it is setup. I do not see this as a duplicate of Issue18378 as I can init the locale. The problem, and I could believe its an OSX bug, is that new threads do not return the expected locale from _locale.setlocale() for a period of time, approx 2s after starting up. |
|||
| msg379467 - (view) | Author: Ronald Oussoren (ronaldoussoren) * (Python committer) | Date: 2020年10月23日 19:33 | |
I've been using the scriptlet below to try to attempt to reproduce the problem. I'm not sure if this matches the way the program of the OP is set up.
The scriptlet below works for me without problems (macOS 10.15, Python 3.4 - 3.9).
This either means the problem has been fixed in the meantime (if it was an OS bug), or my script doesn't reproduce the problematic setup.
The traceback in the first message is due to LC_CTYPE=UTF-8 in the default shell environment on macOS, which wasn't recognised by locale.py for a long time. That issue has been fixed though.
# ----
import locale
import threading
def thread():
print("thread locale:", locale.getlocale())
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
#locale.getlocale()
t = threading.Thread(target=thread)
t.start()
t.join()
|
|||
| msg379468 - (view) | Author: Ronald Oussoren (ronaldoussoren) * (Python committer) | Date: 2020年10月23日 19:34 | |
I'm closing this issue as "works for me". Please re-open if there is more information on how to reproduce the problem. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:14 | admin | set | github: 67985 |
| 2020年10月23日 19:34:57 | ronaldoussoren | set | status: open -> closed type: behavior messages: + msg379468 resolution: works for me stage: resolved |
| 2020年10月23日 19:33:57 | ronaldoussoren | set | messages: + msg379467 |
| 2015年03月29日 11:00:56 | barry-scott | set | files:
+ initLocale.py messages: + msg239484 |
| 2015年03月28日 19:57:11 | ned.deily | set | messages: + msg239464 |
| 2015年03月28日 17:10:28 | r.david.murray | set | nosy:
+ ronaldoussoren, r.david.murray, ned.deily messages: + msg239461 components: + macOS |
| 2015年03月28日 10:47:55 | barry-scott | create | |