Thanks your advice :)

Finally, I decide not to create an pypi package containing only binaries by other program(not Extension).

Because I think my binding-project is an extension for project A, I should assume the user has installed A successfully. Otherwise I will give some information to guide users to install project A.

On Tue, Jun 7, 2016 at 11:05 PM, Daniel Holth <> wrote:
My pysdl2-cffi project has a dependency ':sys_platform=="win32"': ['sdl2_lib'] meaning 'depends on sdl2_lib only on Windows' (see its sdl2_lib is a specially made wheel that only contains DLL's for Windows. On other platforms we don't try to install sdl2_lib, assuming you have already installed SDL2 some other way.

If I wanted to distribute the Linux so's on PyPy I could upload a second wheel with the 'manylinux1' tag, and pip would choose the right one. Distributing Linux binaries is more complicated than for Windows, see PEP 513 and

On Tue, Jun 7, 2016 at 10:32 AM Young Yang <> wrote:

I'm writing a python-binding project for project A written in C++.
Project A is on github. It supports compiling itself to produce .so in linux or .dll in windows.
My python-binding project contains depends on the .dll and .so file.

Now I want to register my package on pypi. So that users can install my package with only running `pip install XXXX`.

I have to support both windows and linux.  The only solution I can figure out is to include both .dll and .so in my package.   This will end up with both .so and .dll installed in any platforms. It sounds dirty.

Is there any better ways to achieve my goal?

PS: The compile process of Project A is a little complicated, so I can't use python Extension to build my dynamic library.

Thanks in advance :) 

Best wishes,
Young Yang
Distutils-SIG maillist  -

Best wishes,
Young Yang