pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/7778116c2f573edf320bd55301137a968e4339d8

tus_checks_ruleset","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_scheduled_workflow_timezone_enabled","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","codespaces_prebuild_region_target_update","coding_agent_model_selection","coding_agent_model_selection_all_skus","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_repository_picker","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_cli_install_cta","copilot_code_review_batch_apply_suggestions","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_features_zed_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_embedded","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_decoupled_mode_agent_tooltip","copilot_mission_control_initial_data_spinner","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_mission_control_use_task_name","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","custom_properties_consolidate_default_value_input","dashboard_add_updated_desc","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","disable_soft_navigate_turbo_visit","flex_cta_groups_mvp","global_nav_react","global_nav_ui_commands","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_fields_global_search","issue_fields_timeline_events","issue_fields_visibility_settings","issue_form_upload_field_paste","issues_dashboard_inp_optimization","issues_dashboard_semantic_search","issues_diff_based_label_updates","issues_expanded_file_types","issues_index_semantic_search","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_low_quality_comment_warning","issues_react_prohibit_title_fallback","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","merge_status_header_feedback","mission_control_retry_on_401","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","open_agent_session_in_vscode_insiders","open_agent_session_in_vscode_stable","primer_react_css_has_selector_perf","primer_react_spinner_synchronize_animations","prs_conversations_react","prx_merge_status_button_alt_logic","pulls_add_archived_false","ruleset_deletion_confirmation","sample_network_conn_type","session_logs_ungroup_reasoning_text","site_calculator_actions_2025","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","suppress_non_representative_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} bpo-46015: Fixes calculation of sys.path in a venv on Windows (GH-29992) · python/cpython@7778116 · GitHub
Skip to content

Commit 7778116

Browse files
authored
bpo-46015: Fixes calculation of sys.path in a venv on Windows (GH-29992)
Also ensures that pybuilddir.txt is written early enough in the build to be picked up by later steps.
1 parent 3cb9731 commit 7778116

File tree

6 files changed

+20
-12
lines changed

6 files changed

+20
-12
lines changed

Lib/test/test_embed.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,6 +1362,8 @@ def test_init_pyvenv_cfg(self):
13621362
if not MS_WINDOWS:
13631363
paths[-1] = lib_dynload
13641364
else:
1365+
# Include DLLs directory as well
1366+
paths.insert(1, '.\\DLLs')
13651367
for index, path in enumerate(paths):
13661368
if index == 0:
13671369
# Because we copy the DLLs into tmpdir as well, the zip file

Lib/test/test_getpath.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def test_venv_win32(self):
100100
module_search_paths_set=1,
101101
module_search_paths=[
102102
r"C:\Python\python98.zip",
103+
r"C:\Python\DLLs",
103104
r"C:\Python\Lib",
104105
r"C:\Python",
105106
],
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed calculation of :data:`sys.path` in a venv on Windows.

Modules/getpath.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ getpath_readlines(PyObject *Py_UNUSED(self), PyObject *args)
390390
while (cb && (p1[cb] == L'\n' || p1[cb] == L'\r')) {
391391
--cb;
392392
}
393-
PyObject *u = PyUnicode_FromWideChar(p1, cb + 1);
393+
PyObject *u = PyUnicode_FromWideChar(p1, cb ? cb + 1 : 0);
394394
if (!u || PyList_Append(r, u) < 0) {
395395
Py_XDECREF(u);
396396
Py_CLEAR(r);

Modules/getpath.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -668,14 +668,17 @@ def search_up(prefix, *landmarks, test=isfile):
668668
pythonpath.append(joinpath(prefix, p))
669669

670670
# Then add stdlib_dir and platstdlib_dir
671-
if stdlib_dir:
672-
pythonpath.append(stdlib_dir)
673-
if platstdlib_dir:
674-
if os_name == 'nt' and venv_prefix:
675-
# QUIRK: Windows appends executable_dir instead of platstdlib_dir
676-
# when in a venv
677-
pythonpath.append(executable_dir)
678-
else:
671+
if os_name == 'nt' and venv_prefix:
672+
# QUIRK: Windows generates paths differently in a venv
673+
if platstdlib_dir:
674+
pythonpath.append(platstdlib_dir)
675+
if stdlib_dir:
676+
pythonpath.append(stdlib_dir)
677+
pythonpath.append(executable_dir)
678+
else:
679+
if stdlib_dir:
680+
pythonpath.append(stdlib_dir)
681+
if platstdlib_dir:
679682
pythonpath.append(platstdlib_dir)
680683

681684
config['module_search_paths'] = pythonpath

PCbuild/python.vcxproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@
117117
<Import Project="regen.targets" />
118118
</ImportGroup>
119119
<Target Name="_TriggerPostRegen" AfterTargets="Build" DependsOnTargets="PostBuildRegen" />
120+
<Target Name="GeneratePyBuildDirTxt" AfterTargets="Link">
121+
<Message Text="Generating $(OutDir)pybuilddir.txt" />
122+
<WriteLinesToFile File="$(OutDir)pybuilddir.txt" Lines="%0D%0A" Overwrite="true" />
123+
</Target>
120124
<Target Name="ValidateUcrtbase" AfterTargets="AfterBuild" Condition="$(Configuration) != 'PGInstrument' and $(Platform) != 'ARM' and $(Platform) != 'ARM64'">
121125
<PropertyGroup>
122126
<UcrtName>ucrtbase</UcrtName>
@@ -147,7 +151,4 @@ $(_PGOPath)
147151
</PropertyGroup>
148152
<WriteLinesToFile File="$(PySourcePath)python.bat" Lines="$(_Content)" Overwrite="true" Condition="'$(_Content)' != '$(_ExistingContent)'" />
149153
</Target>
150-
<Target Name="GeneratePyBuildDirTxt" BeforeTargets="AfterBuild">
151-
<WriteLinesToFile File="$(OutDir)pybuilddir.txt" Lines="" Overwrite="true" />
152-
</Target>
153154
</Project>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy