-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
BLD: include dll in package_data on Windows #21321
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
Conversation
Codecov Report
@@ Coverage Diff @@
## master #21321 +/- ##
=======================================
Coverage 91.89% 91.89%
=======================================
Files 153 153
Lines 49596 49596
=======================================
Hits 45576 45576
Misses 4020 4020
Continue to review full report at Codecov.
|
If I read this correctly, this will not only static link the C++ runtime to one C++ extension, but static link the C multi-threaded runtime library to all Pandas extension modules. That is not a good idea since Python can only load a total of ~127 of such DLLs. It's probably better to allow distributors to include the C++ runtime DLL,, in the wheels, e.g. diff --git a/setup.py b/setup.py
index 6febe674f..e161b1534 100755
--- a/setup.py
+++ b/setup.py
@@ -733,7 +733,7 @@ setup(name=DISTNAME,
maintainer=AUTHOR,
version=versioneer.get_version(),
packages=find_packages(include=['pandas', 'pandas.*']),
- package_data={'': ['data/*', 'templates/*'],
+ package_data={'': ['data/*', 'templates/*', '_libs/*.dll'],
'pandas.tests.io': ['data/legacy_hdf/*.h5',
'data/legacy_pickle/*/*.pickle',
'data/legacy_msgpack/*/*.msgpack',
Distributors could then copy (or not) the C++ runtime DLL to the |
@chris-b1 is this the fix mpl did? |
No, mpl packages the whole DLL. I thought static linking might be better in terms of limiting ending binary size, but wasn't aware of issue @cgohlke linked. @cgohlke - wasn't clear to me looking at mpl setup, do you just manually copy DLL over into that directory? I see the stuff adding it to |
Yes, this way it is up to the distributor to copy any required DLL to the |
@TomAugspurger - is it correct that the Windows wheels you upload to PyPI are from @cgohlke? If that's the case, @cgohlke does this work for you? |
That's correct.
…On Wed, Jun 6, 2018 at 12:43 PM, chris-b1 ***@***.***> wrote:
@TomAugspurger <https://github.com/TomAugspurger> - is it correct that
the Windows wheels you upload to PyPI are from @cgohlke
<https://github.com/cgohlke>? If that's the case, @cgohlke
<https://github.com/cgohlke> does this work for you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#21321 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABQHIiPF0-76XXhgbdfSUie9JWRh288Pks5t6BSzgaJpZM4UZ_5n>
.
|
I'm sure it does for Python 3. The build script will copy
It's probably better not to copy |
does the MANIFEST.in need updating here? |
@chris-b1 can you rebase. ready to go? |
Just rebased, Should be good, I'm not familiar with MANIFEST.in, but seems to only involve source distributions? https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute |
@chris-b1 ok that sounds good then. |
(cherry picked from commit 324b324)
(cherry picked from commit 324b324)
git diff upstream/master -u -- "*.py" | flake8 --diff
Not sure how to test this, but I believe should remove the runtime dependency by static linking against the MSVC++ runtime. @cgohlke any thoughts?