Skip to content

Commit 7fe7c5d

Browse files
authored
Merge pull request #79 from IntelPython/wheels/fix_windows_venv
Support mkl-service in virtual environment out of the box
2 parents c271680 + 6be0360 commit 7fe7c5d

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

mkl/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
import sys
2727

28+
from . import _init_helper
29+
2830

2931
class RTLD_for_MKL:
3032
def __init__(self):
@@ -57,3 +59,5 @@ def __exit__(self, *args):
5759

5860
from ._py_mkl_service import *
5961
from ._version import __version__
62+
63+
del _init_helper

mkl/_init_helper.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Copyright (c) 2025, Intel Corporation
2+
#
3+
# Redistribution and use in source and binary forms, with or without
4+
# modification, are permitted provided that the following conditions are met:
5+
#
6+
# * Redistributions of source code must retain the above copyright notice,
7+
# this list of conditions and the following disclaimer.
8+
# * Redistributions in binary form must reproduce the above copyright
9+
# notice, this list of conditions and the following disclaimer in the
10+
# documentation and/or other materials provided with the distribution.
11+
# * Neither the name of Intel Corporation nor the names of its contributors
12+
# may be used to endorse or promote products derived from this software
13+
# without specific prior written permission.
14+
#
15+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
19+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25+
26+
import os
27+
import os.path
28+
import sys
29+
30+
is_venv_win32 = (
31+
sys.platform == "win32"
32+
and sys.base_exec_prefix != sys.exec_prefix
33+
and os.path.isfile(os.path.join(sys.exec_prefix, "pyvenv.cfg"))
34+
)
35+
36+
if is_venv_win32:
37+
# In Windows venv: add Library/bin to PATH for proper DLL loading
38+
dll_dir = os.path.join(sys.exec_prefix, "Library", "bin")
39+
if os.path.isdir(dll_dir):
40+
os.add_dll_directory(dll_dir)
41+
42+
del is_venv_win32

0 commit comments

Comments
 (0)