Rafael H. Schloming reopened PROTON-630:

I've rolled back this change because it somewhat complicated the 
renaming/refactoring of the proton.py module into a package hierarchy.

Also as I was looking into what it would take to get it working again I noticed 
that distutils is actually capable of invoking swig and generating the C 
wrapper source code on its own. I think all you need to do is define your 
extension to include cproton.i in the source rather than trying to pregenerate 
and bundle in the swig source code. I believe doing this would radically 
simplify a number of issues and possibly allow for a fairly vanilla setup.py 
that could be written outside of cmake as opposed to being generated by and 
intimately entangled with the cmake build.

> [python] Add a setup.py for installing the python bindings via PyPi
> -------------------------------------------------------------------
>                 Key: PROTON-630
>                 URL: https://issues.apache.org/jira/browse/PROTON-630
>             Project: Qpid Proton
>          Issue Type: New Feature
>          Components: python-binding
>    Affects Versions: 0.7
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>             Fix For: 0.8
> Include a setup.py that can be used to upload/download the python bindings 
> from PyPi.
> Rational:  This feature would allow our python bindings to properly integrate 
> with python virtual environments such as virtualenv.  virtualenv allows a 
> developer to override the python packages installed on their system.  
> virtualenv works with pip to fetch python packages from repositories such as 
> PyPi, allowing a developer to create a custom python environment that can be 
> used for developing and testing python applications. 
> Since we currently lack an easy method for providing the python bindings via 
> PyPi, virtual environments cannot include proton python bindings, as the 
> site-packages installed on the 'real' system are not available in the virtual 
> environment by default.
> However, system libraries, such as libproton, *are* able to be referenced by 
> the virtual environment by default.  Given that, this new setup.py should 
> only need to install the python files that live under site-packages.  
> Specifically, only the proton.py, cproton.py, and the _cproton.so files need 
> to be provided.  The setup.py should be written to actually include the 
> swig-generated C source, and build _cproton.so from it as part of the install 
> into the target environment.
> Since only the python-specific files are provided, and  the swig-generated C 
> code must be built on the target machine, the setup.py will assume that the 
> developer has already installed the proton libraries and header files on the 
> target machine.  To be clear: this feature will still *require* proton to be 
> installed on the developer's machine - it merely allows the python bindings 
> to then be installed into a virtual python site-packages via pip/PyPi.
> See https://virtualenv.pypa.io/en/latest/index.html for more details 
> regarding virtual environments.

This message was sent by Atlassian JIRA

Reply via email to