How to register my python package which relys on the output of other project on pypi
Hi, 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. This question comes after this question https://mail.python.org/pipermail/distutils-sig/2016-June/029059.html Thanks in advance :) -- Best wishes, Young Yang
My pysdl2-cffi project has a dependency ':sys_platform=="win32"': ['sdl2_lib'] meaning 'depends on sdl2_lib only on Windows' (see its setup.py). 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 https://pypi.python.org/pypi/auditwheel On Tue, Jun 7, 2016 at 10:32 AM Young Yang <afe.young@gmail.com> wrote:
Hi,
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.
This question comes after this question https://mail.python.org/pipermail/distutils-sig/2016-June/029059.html
Thanks in advance :)
-- Best wishes, Young Yang _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig
Thanks your advice :) Finally, I decide not to create an pypi package containing only binaries by other program(not setup.py 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 <dholth@gmail.com> wrote:
My pysdl2-cffi project has a dependency ':sys_platform=="win32"': ['sdl2_lib'] meaning 'depends on sdl2_lib only on Windows' (see its setup.py). 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 https://pypi.python.org/pypi/auditwheel
On Tue, Jun 7, 2016 at 10:32 AM Young Yang <afe.young@gmail.com> wrote:
Hi,
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.
This question comes after this question https://mail.python.org/pipermail/distutils-sig/2016-June/029059.html
Thanks in advance :)
-- Best wishes, Young Yang _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig
-- Best wishes, Young Yang
participants (2)
-
Daniel Holth
-
Young Yang