[ 
https://issues.apache.org/jira/browse/PROTON-630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti updated PROTON-630:
------------------------------

    Description: 
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.

  was:
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.

See https://virtualenv.pypa.io/en/latest/index.html for more details regarding 
virtual environments.


> [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
(v6.2#6252)

Reply via email to