Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Ensure venv works with source builds when using --copies #92897

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

Closed
jkloth opened this issue May 17, 2022 · 6 comments
Closed

Ensure venv works with source builds when using --copies #92897

jkloth opened this issue May 17, 2022 · 6 comments
Labels
stdlib Python modules in the Lib dir type-bug An unexpected behavior, bug, or error

Comments

@jkloth
Copy link
Contributor

jkloth commented May 17, 2022

Currently a venv created with --copies or on Windows doesn't respect the sysconfig.is_python_build() property of the creating interpreter. This leads to compilation errors when attempting to build extensions in the virtual environment.

Linked PRs

@jkloth jkloth added the type-bug An unexpected behavior, bug, or error label May 17, 2022
jkloth added a commit to jkloth/cpython that referenced this issue May 17, 2022
@eryksun eryksun added the stdlib Python modules in the Lib dir label May 17, 2022
@jkloth
Copy link
Contributor Author

jkloth commented May 17, 2022

An example error when building psutil.

running build_ext
building 'psutil._psutil_windows' extension
creating build\temp.win-amd64-3.12
creating build\temp.win-amd64-3.12\Release
creating build\temp.win-amd64-3.12\Release\psutil
creating build\temp.win-amd64-3.12\Release\psutil\arch
creating build\temp.win-amd64-3.12\Release\psutil\arch\windows
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=590 -DPSUTIL_WINDOWS=1 -D_WIN32_WINNT=0x01000 -D_AVAIL_WINVER_=0x01000 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -IC:\Users\Jeremy\Source\pyperformance\include -IC:\Public\Devel\cpython\main\include -IC:\Public\Devel\cpython\main\Include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\cppwinrt /Tcpsutil/_psutil_common.c /Fobuild\temp.win-amd64-3.12\Release\psutil/_psutil_common.obj
_psutil_common.c
C:\Public\Devel\cpython\main\include\Python.h(12): fatal error C1083: Cannot open include file: 'pyconfig.h': No such file or directory
error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.30.30705\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

After the PR, this builds without error (kinda). There is a bug in setuptools that causes an additional error. This can be worked around by setting the environment variable SETUPTOOLS_USE_DISTUTILS=no.

@vstinner
Copy link
Member

@jkloth proposed #92899 to fix this issue.

@jkloth
Copy link
Contributor Author

jkloth commented May 25, 2022

I'll add that prior to 3.8 this problem did not occur. Just that source builds on Windows are a rare thing to start with much less compiling in virtual environments from a source build so this change in behavior has gone relatively unnoticed.

vsajip pushed a commit that referenced this issue Jul 5, 2022
vsajip pushed a commit to vsajip/cpython that referenced this issue Jul 5, 2022
…roperty of the creating interpreter (pythonGH-92899)

(cherry picked from commit 0675975)

Co-authored-by: Jeremy Kloth <[email protected]>
vsajip pushed a commit to vsajip/cpython that referenced this issue Jul 5, 2022
… of the creating interpreter (pythonGH-92899)

(cherry picked from commit 0675975)
vsajip added a commit that referenced this issue Jul 5, 2022
…y of the creating interpreter (GH-92899) (GH-94567)

(cherry picked from commit 0675975)

Co-authored-by: Jeremy Kloth <[email protected]>
@vsajip
Copy link
Member

vsajip commented Jul 5, 2022

Closing, as PRs merged for main and 3.11 branches.

@vsajip vsajip closed this as completed Jul 5, 2022
@FFY00
Copy link
Member

FFY00 commented Jan 20, 2025

Is there any plan for the removal of the check_home argument in sysconfig.is_python_build, whose deprecation was introduced in GH-92899?

Keeping deprecated as-is doesn't really create much maintenance burden, and removing it can break user code, though searching for such usages on Github didn't yield any results. Perhaps we could schedule its removal for 3.15 or 3.16, and clearly state that in the deprecation warning? What do you folks think?

@vstinner
Copy link
Member

The deprecated check_home parameter can be removed in Python 3.15.

FFY00 added a commit to FFY00/cpython that referenced this issue Jan 20, 2025
hugovk pushed a commit to hugovk/cpython that referenced this issue Feb 26, 2025
hugovk pushed a commit to hugovk/cpython that referenced this issue Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stdlib Python modules in the Lib dir type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

5 participants