-
-
Notifications
You must be signed in to change notification settings - Fork 31.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
_contextvars missing in xmaster branch Windows build? #78872
Comments
Using Visual Studio 2017 to build the current master branch of Python (something I'm trying for the first time in about two years - maybe I'm missing something obvious!), with the x64 target, under both the Release and Debug builds I get a Python that can't even start to run the test suite. Here's output from the Release build - the Debug build output is nearly identical. The problem does not appear with the Win32 target. Of course I'm doing this on a 64-bit box (under Win 10 Pro): C:\Code\Python\PCbuild>rt -q -x64 C:\Code\Python\PCbuild>"C:\Code\Python\PCbuild\amd64\python.exe" -u -Wd -E -bb -m test
Traceback (most recent call last):
File "C:\Code\Python\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Code\Python\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Code\Python\lib\test\__main__.py", line 1, in <module>
from test.libregrtest import main
File "C:\Code\Python\lib\test\libregrtest\__init__.py", line 4, in <module>
from test.libregrtest.cmdline import _parse_args, RESOURCE_NAMES, ALL_RESOURCES
File "C:\Code\Python\lib\test\libregrtest\cmdline.py", line 4, in <module>
from test import support
File "C:\Code\Python\lib\test\support\__init__.py", line 6, in <module>
import asyncio.events
File "C:\Code\Python\lib\asyncio\__init__.py", line 8, in <module>
from .base_events import *
File "C:\Code\Python\lib\asyncio\base_events.py", line 39, in <module>
from . import events
File "C:\Code\Python\lib\asyncio\events.py", line 14, in <module>
import contextvars
File "C:\Code\Python\lib\contextvars.py", line 1, in <module>
from _contextvars import Context, ContextVar, Token, copy_context
ModuleNotFoundError: No module named '_contextvars' _contextvarsmodule.c is in the list of Modules under the pythoncore project, and it appears to compile without incident when the Solution is built. The executable appears to be fine in other respects I checked; e.g., C:\Code\Python\PCbuild>amd64\python.exe Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> from collections import Counter
>>> Counter("abab")
Counter({'a': 2, 'b': 2})
>>> import _contextvars
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named '_contextvars' Clue? |
It looks like _contextvars has both its own project and is also built as part of pythoncore.vcxproj. However, _contextvars.vcxproj is not in PCbuild.sln, which means when you build through Visual Studio (rather than with build.bat via pcbuild.proj), you don't get the separate extension module. And even though it's built into pythoncore.vcxproj, it hasn't been added to PC/config.c, and so it isn't initialised as a regular builtin module. Yury - is there a specific reason for it to be a standalone module? How much do you think it hurts to have it always loaded into memory, even if it hasn't truly been imported or used? |
I'd be fine with that. Would you be able to do the necessary change (I don't have VS at hand)? |
Shouldn't need VS for this change (updating the SLN file generally does need it). I'm happy to do it though. In case someone else gets to it before me:
The CI builds will tell you pretty quickly if it worked or not. |
FYI, I bet I didn't see a problem with the Win32 target because I followed instructions ;-) and did my first build using build.bat. Using that for the x64 too target makes the problem go away. |
Good night I installed the python program at the start it appears this message
|
I am building python for windows on ARM64,
I am getting "No module named '_contextvars'" when trying to import contextvars:
>>> import contextvars
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\ps-emb\Downloads\cpython-master\cpython-master\lib\contextvars.py", line 1, in <module>
from _contextvars import Context, ContextVar, Token, copy_context
ModuleNotFoundError: No module named '_contextvars' thanks |
Precisely _how_ are you building it? As noted above, if you're using Visual Studio, try using build.bat instead for the first time. |
(Just updating the issue to note that Python 3.7 is similarly affected) |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: