[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Kim van der Riet (Jira)


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542634#comment-17542634
 ] 

Kim van der Riet edited comment on PROTON-2550 at 5/26/22 7:05 PM:
---

The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to {{sys.path}} as 
follows:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{sys.exec_prefix}}; empty 
heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} (on Unix 
and macOS). For each of the distinct head-tail combinations, it sees if it 
refers to an existing directory, and if so, adds it to {{sys.path}} and also 
inspects the newly added path for configuration files.

...

A path configuration file is a file whose name has the form {{name.pth}} and 
exists in one of the four directories mentioned above; its contents are 
additional items (one per line) to be added to {{sys.path}}. Non-existing items 
are never added to {{sys.path}}, and no check is made that the item refers to a 
directory rather than a file. No item is added to {{sys.path}} more than once. 
Blank lines and lines beginning with # are skipped. Lines starting with import 
(followed by space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/3/library/site.html]


was (Author: kpvdr):
The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to {{sys.path}} as 
follows:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{{}sys.exec_prefix{}}}; 
empty heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} and then 
{{lib/site-python}} (on Unix and Macintosh). For each of the distinct head-tail 
combinations, it sees if it refers to an existing directory, and if so, adds it 
to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form name.pth and exists 
in one of the four directories mentioned above; its contents are additional 
items (one per line) to be added to sys.path. Non-existing items are never 
added to sys.path, and no check is made that the item refers to a directory 
rather than a file. No item is added to sys.path more than once. Blank lines 
and lines beginning with # are skipped. Lines starting with import (followed by 
space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/2/library/site.html]

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from dist 

[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Jira


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542639#comment-17542639
 ] 

Jiri Daněk edited comment on PROTON-2550 at 5/26/22 6:53 PM:
-

Maybe add {{--single-version-externally-managed}} to setup.py execution. It 
helped in the router with a similar problem, 
https://github.com/skupperproject/skupper-router/commit/d92f53e923ed7b9fd06070513309d31888a5610b

bq. After building proton, installing the python bindings using the generated 
setup.py does not create all of the necessary directories when used with the 
--prefix option. In particular, a directory using the module name proton is 
missing.

When installing the package by hand, it is best to use the generated .tar.gz or 
.wheel file and install it with pip. There is {{pip --prefix}} and other such 
options, if you need them. Use of virtual environments is encouraged; then no 
--prefix is necessary. The pip install should work ok.


was (Author: jdanek):
Maybe add {{--single-version-externally-managed}} to setup.py execution. It 
helped in the router with a similar problem, 
https://github.com/skupperproject/skupper-router/commit/d92f53e923ed7b9fd06070513309d31888a5610b

bq. After building proton, installing the python bindings using the generated 
setup.py does not create all of the necessary directories when used with the 
--prefix option. In particular, a directory using the module name proton is 
missing.

When installing the package by hand, it is best to use the generated .tar.gz or 
.wheel file and install it with pip. There is {{pip --prefix}} and other such 
options. That install should work ok.

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ echo $PYTHONPATH
> /tmp/lib64/python3.10/site-packages
> $ python
> >>> import proton
> Traceback (most recent call last):
>   File "", line 1, in 
> ModuleNotFoundError: No module named 'proton'
> >>> 
> {noformat}
> However, a workaround exists by adding a symbolic link *{{proton}}* pointing 
> to the .egg directory:
> {noformat}
> $ cd /tmp/lib64/python3.10/site-packages/
> $ ln -s python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg proton
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ python
> >>> import proton
> >>> proton.__path__
> _NamespacePath(['/tmp/lib64/python3.10/site-packages/proton'])
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Jira


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542639#comment-17542639
 ] 

Jiri Daněk edited comment on PROTON-2550 at 5/26/22 6:51 PM:
-

Maybe add {{--single-version-externally-managed}} to setup.py execution. It 
helped in the router with a similar problem, 
https://github.com/skupperproject/skupper-router/commit/d92f53e923ed7b9fd06070513309d31888a5610b

bq. After building proton, installing the python bindings using the generated 
setup.py does not create all of the necessary directories when used with the 
--prefix option. In particular, a directory using the module name proton is 
missing.

When installing the package by hand, it is best to use the generated .tar.gz or 
.wheel file and install it with pip. There is {{pip --prefix}} and other such 
options. That install should work ok.


was (Author: jdanek):
Maybe add {{--single-version-externally-managed}} to setup.py execution. It 
helped in the router with a similar problem, 
https://github.com/skupperproject/skupper-router/commit/d92f53e923ed7b9fd06070513309d31888a5610b

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ echo $PYTHONPATH
> /tmp/lib64/python3.10/site-packages
> $ python
> >>> import proton
> Traceback (most recent call last):
>   File "", line 1, in 
> ModuleNotFoundError: No module named 'proton'
> >>> 
> {noformat}
> However, a workaround exists by adding a symbolic link *{{proton}}* pointing 
> to the .egg directory:
> {noformat}
> $ cd /tmp/lib64/python3.10/site-packages/
> $ ln -s python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg proton
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ python
> >>> import proton
> >>> proton.__path__
> _NamespacePath(['/tmp/lib64/python3.10/site-packages/proton'])
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Kim van der Riet (Jira)


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542634#comment-17542634
 ] 

Kim van der Riet edited comment on PROTON-2550 at 5/26/22 6:38 PM:
---

The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to {{sys.path}} as 
follows:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{{}sys.exec_prefix{}}}; 
empty heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} and then 
{{lib/site-python}} (on Unix and Macintosh). For each of the distinct head-tail 
combinations, it sees if it refers to an existing directory, and if so, adds it 
to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form name.pth and exists 
in one of the four directories mentioned above; its contents are additional 
items (one per line) to be added to sys.path. Non-existing items are never 
added to sys.path, and no check is made that the item refers to a directory 
rather than a file. No item is added to sys.path more than once. Blank lines 
and lines beginning with # are skipped. Lines starting with import (followed by 
space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/2/library/site.html]


was (Author: kpvdr):
The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to sys.path as follows:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{{}sys.exec_prefix{}}}; 
empty heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} and then 
{{lib/site-python}} (on Unix and Macintosh). For each of the distinct head-tail 
combinations, it sees if it refers to an existing directory, and if so, adds it 
to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form name.pth and exists 
in one of the four directories mentioned above; its contents are additional 
items (one per line) to be added to sys.path. Non-existing items are never 
added to sys.path, and no check is made that the item refers to a directory 
rather than a file. No item is added to sys.path more than once. Blank lines 
and lines beginning with # are skipped. Lines starting with import (followed by 
space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/2/library/site.html]

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from 

[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Kim van der Riet (Jira)


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542634#comment-17542634
 ] 

Kim van der Riet edited comment on PROTON-2550 at 5/26/22 6:37 PM:
---

The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to sys.path as follows:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{{}sys.exec_prefix{}}}; 
empty heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} and then 
{{lib/site-python}} (on Unix and Macintosh). For each of the distinct head-tail 
combinations, it sees if it refers to an existing directory, and if so, adds it 
to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form name.pth and exists 
in one of the four directories mentioned above; its contents are additional 
items (one per line) to be added to sys.path. Non-existing items are never 
added to sys.path, and no check is made that the item refers to a directory 
rather than a file. No item is added to sys.path more than once. Blank lines 
and lines beginning with # are skipped. Lines starting with import (followed by 
space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/2/library/site.html]


was (Author: kpvdr):
The success of the system install may lie in the easy-install.pth file that is 
created in the site-packages directory. According to the Python 
documentation[1], the contents of this file are added to sys.path:
{quote}It starts by constructing up to four directories from a head and a tail 
part. For the head part, it uses {{sys.prefix}} and {{{}sys.exec_prefix{}}}; 
empty heads are skipped. For the tail part, it uses the empty string and then 
{{lib/site-packages}} (on Windows) or {{lib/pythonX.Y/site-packages}} and then 
{{lib/site-python}} (on Unix and Macintosh). For each of the distinct head-tail 
combinations, it sees if it refers to an existing directory, and if so, adds it 
to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form name.pth and exists 
in one of the four directories mentioned above; its contents are additional 
items (one per line) to be added to sys.path. Non-existing items are never 
added to sys.path, and no check is made that the item refers to a directory 
rather than a file. No item is added to sys.path more than once. Blank lines 
and lines beginning with # are skipped. Lines starting with import (followed by 
space or tab) are executed.
{quote}
I notice that the path tail combinations for Unix do not include {{{}lib64{}}}, 
only {{{}lib{}}}. I wonder if this is contributing to the failure to find the 
{{.pth}} file for local installs. For that matter, it would not work for system 
installs either.

[1] [https://docs.python.org/2/library/site.html]

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from dist directory 

[jira] [Comment Edited] (PROTON-2550) [python-binding] setup.py install does not create module directory when using --prefix

2022-05-26 Thread Kim van der Riet (Jira)


[ 
https://issues.apache.org/jira/browse/PROTON-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542585#comment-17542585
 ] 

Kim van der Riet edited comment on PROTON-2550 at 5/26/22 5:12 PM:
---

I did a check on what happens if a system install is used without the 
*{{--prefix}}* option. In this case, the identical directory structure is 
created in {*}{{/usr/local/lib64}}{*}. And with no *{{PYTHONPATH}}* set, python 
finds the proton module ok:
{noformat}
$ unset PYTHONPATH
$ cd python/dist/
$ python setup.py install # Tried non-root install first
...

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/local/lib64/python3.10'
...
$ sudo python setup.py install
...
$ ll /usr/local/lib64/python3.10/site-packages/
total 8
-rw-r--r--. 1 root root   57 May 26 12:36 easy-install.pth
drwxr-xr-x. 5 root root 4096 May 26 12:36 
python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
$ cd ~ # Exit from dist directory which contains python install artifacts
$ python
>>> import proton
>>> proton.__path__
['/usr/local/lib64/python3.10/site-packages/python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg/proton']
>>> 
{noformat}
So it seems that a local install does not work with a PYTHONPATH set, but with 
system install which uses the same directory structure in a system location, 
python finds the proton directory within the .egg directory. What are we 
missing? How do we make local installs work?


was (Author: kpvdr):
I did a check on what happens if the install is used without the *{{--prefix}}* 
option. In this case, the identical directory structure is created in 
{*}{{/usr/local/lib64}}{*}. And with no *{{PYTHONPATH}}* set, python finds the 
proton module ok:
{noformat}
$ unset PYTHONPATH
$ cd python/dist/
$ python setup.py install # Tried non-root install first
...

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/local/lib64/python3.10'
...
$ sudo python setup.py install
...
$ ll /usr/local/lib64/python3.10/site-packages/
total 8
-rw-r--r--. 1 root root   57 May 26 12:36 easy-install.pth
drwxr-xr-x. 5 root root 4096 May 26 12:36 
python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
$ cd ~ # Exit from dist directory which contains python install artifacts
$ python
>>> import proton
>>> proton.__path__
['/usr/local/lib64/python3.10/site-packages/python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg/proton']
>>> 
{noformat}
So it seems that a local install does not work with a PYTHONPATH set, but with 
system install which uses the same directory structure in a system location, 
python finds the proton directory within the .egg directory. What are we 
missing? How do we make local installs work?

> [python-binding] setup.py install does not create module directory when using 
> --prefix
> --
>
> Key: PROTON-2550
> URL: https://issues.apache.org/jira/browse/PROTON-2550
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Reporter: Kim van der Riet
>Assignee: Andrew Stitcher
>Priority: Major
>
> After building proton, installing the python bindings using the generated 
> *{{setup.py}}* does not create all of the necessary directories when used 
> with the *{{--prefix}}* option. In particular, a directory using the module 
> name *{{proton}}* is missing.
> The following install command from the cmake build directory:
> {noformat}
> $ export PYTHONPATH=/tmp/lib64/python3.10/site-packages
> $ cd python/dist/
> $ python setup.py install --prefix /tmp
> $ ls -l /tmp/lib64/python3.10/site-packages/
> total 3
> -rw-rw-r--. 1 kvdr kvdr  57 May 26 11:58 easy-install.pth
> drwxrwxr-x. 5 kvdr kvdr 160 May 26 11:58 
> python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg
> {noformat}
> produces a single {{python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg}} 
> directory (and a {{easy-install.pth}} file if the {{PYTHONPATH}} is set prior 
> to the install).
> This is insufficient to use module proton, even with the PYTHONPATH set:
> {noformat}
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ echo $PYTHONPATH
> /tmp/lib64/python3.10/site-packages
> $ python
> >>> import proton
> Traceback (most recent call last):
>   File "", line 1, in 
> ModuleNotFoundError: No module named 'proton'
> >>> 
> {noformat}
> However, a workaround exists by adding a symbolic link *{{proton}}* pointing 
> to the .egg directory:
> {noformat}
> $ cd /tmp/lib64/python3.10/site-packages/
> $ ln -s python_qpid_proton-0.38.0.dev0-py3.10-linux-x86_64.egg proton
> $ cd ~ # Exit from dist directory which contains python install artifacts
> $ python
>