You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by Fraser Adams <fr...@blueyonder.co.uk> on 2014/11/30 17:31:20 UTC

Proton Python install shenanigans

  Hey all,
I've been tearing my hair out a bit trying to figure why I can't see the 
relevant Python modules.

I build Proton on a clean Linux Mint 17 system (which is based on Ubuntu 
14.04)

make all builds successfully and sudo make install installs the following:

fadams@zappa /usr/local/lib/proton/bindings/python $ ls -al
total 2120
drwxr-xr-x 2 root root    4096 Nov 30 12:28 .
drwxr-xr-x 5 root root    4096 Nov 30 12:20 ..
-rw-r--r-- 1 root root   89278 Nov 30 11:29 cproton.py
-rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyc
-rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyo
-rw-r--r-- 1 root root 1445471 Nov 30 12:20 _cproton.so
-rw-r--r-- 1 root root  109162 Nov 30 11:20 __init__.py
-rw-r--r-- 1 root root  151464 Nov 30 12:28 __init__.pyc
-rw-r--r-- 1 root root  151257 Nov 30 12:28 __init__.pyo


I set PYTHONPATH=/usr/local/lib/proton/bindings/python

but when I try
./msgr-recv.py

I get

Traceback (most recent call last):
   File "./msgr-recv.py", line 23, in <module>
     from proton import *
ImportError: No module named proton


Now I'm thinking that make install hasn't pulled all of the necessary 
files into /usr/local/lib/proton/bindings/python the reason I'm thinking 
that is when I tried running
source config.sh

I noticed that the PYTHONPATH it created looked like

PYTHONPATH=/home/fadams/qpid/git/qpid-proton/tests/python:/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/home/fadams/qpid/git/qpid-proton/build/proton-c/bindings/python

and this *does* appear to work, the significant bit seems to be the 
/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python bit, because 
when I tried:

PYTHONPATH=/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/usr/local/lib/proton/bindings/python

that worked too.

So I'm thinking that the directory proton and its contents in 
qpid-proton/proton-c/bindings/python need to be copied to

/usr/local/lib/proton/bindings/python

as part of the make install process too.


Does that seem about right?

Cheers,
Frase








Re: Proton Python install shenanigans

Posted by "Darryl L. Pierce" <dp...@redhat.com>.
On Sun, Nov 30, 2014 at 04:31:20PM +0000, Fraser Adams wrote:
> I've been tearing my hair out a bit trying to figure why I can't see the
> relevant Python modules.
> 
> I build Proton on a clean Linux Mint 17 system (which is based on Ubuntu
> 14.04)
> 
> make all builds successfully and sudo make install installs the following:
> 
> fadams@zappa /usr/local/lib/proton/bindings/python $ ls -al
> total 2120
> drwxr-xr-x 2 root root    4096 Nov 30 12:28 .
> drwxr-xr-x 5 root root    4096 Nov 30 12:20 ..
> -rw-r--r-- 1 root root   89278 Nov 30 11:29 cproton.py
> -rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyc
> -rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyo
> -rw-r--r-- 1 root root 1445471 Nov 30 12:20 _cproton.so
> -rw-r--r-- 1 root root  109162 Nov 30 11:20 __init__.py
> -rw-r--r-- 1 root root  151464 Nov 30 12:28 __init__.pyc
> -rw-r--r-- 1 root root  151257 Nov 30 12:28 __init__.pyo
> 
> 
> I set PYTHONPATH=/usr/local/lib/proton/bindings/python
> 
> but when I try
> ./msgr-recv.py
> 
> I get
> 
> Traceback (most recent call last):
>   File "./msgr-recv.py", line 23, in <module>
>     from proton import *
> ImportError: No module named proton
> 
> 
> Now I'm thinking that make install hasn't pulled all of the necessary files
> into /usr/local/lib/proton/bindings/python the reason I'm thinking that is
> when I tried running
> source config.sh
> 
> I noticed that the PYTHONPATH it created looked like
> 
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/tests/python:/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/home/fadams/qpid/git/qpid-proton/build/proton-c/bindings/python
> 
> and this *does* appear to work, the significant bit seems to be the
> /home/fadams/qpid/git/qpid-proton/proton-c/bindings/python bit, because when
> I tried:
> 
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/usr/local/lib/proton/bindings/python
> 
> that worked too.
> 
> So I'm thinking that the directory proton and its contents in
> qpid-proton/proton-c/bindings/python need to be copied to
> 
> /usr/local/lib/proton/bindings/python
> 
> as part of the make install process too.
> 
> Does that seem about right?

The code was migrated to a directory, so should be installing to:

  /path/to/python/site-libs/proton

?

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/


Re: Proton Python install shenanigans

Posted by Gordon Sim <gs...@redhat.com>.
On 11/30/2014 04:31 PM, Fraser Adams wrote:
> Now I'm thinking that make install hasn't pulled all of the necessary
> files into /usr/local/lib/proton/bindings/python the reason I'm thinking
> that is when I tried running
> source config.sh
>
> I noticed that the PYTHONPATH it created looked like
>
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/tests/python:/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/home/fadams/qpid/git/qpid-proton/build/proton-c/bindings/python
>
>
> and this *does* appear to work, the significant bit seems to be the
> /home/fadams/qpid/git/qpid-proton/proton-c/bindings/python bit, because
> when I tried:
>
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/usr/local/lib/proton/bindings/python
>
>
> that worked too.
>
> So I'm thinking that the directory proton and its contents in
> qpid-proton/proton-c/bindings/python need to be copied to
>
> /usr/local/lib/proton/bindings/python
>
> as part of the make install process too.
>
>
> Does that seem about right?

The install loses any necessary structure, specifically now the 'proton' 
sub directory for the new package. I hit the same thing and committed a 
fix to the examples branch: 
https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=commit;h=805cd17e360fd77eab29d60955a2193c7e7f0635



Re: Proton Python install shenanigans

Posted by "Darryl L. Pierce" <dp...@redhat.com>.
On Sun, Nov 30, 2014 at 04:31:20PM +0000, Fraser Adams wrote:
> I've been tearing my hair out a bit trying to figure why I can't see the
> relevant Python modules.
> 
> I build Proton on a clean Linux Mint 17 system (which is based on Ubuntu
> 14.04)
> 
> make all builds successfully and sudo make install installs the following:
> 
> fadams@zappa /usr/local/lib/proton/bindings/python $ ls -al
> total 2120
> drwxr-xr-x 2 root root    4096 Nov 30 12:28 .
> drwxr-xr-x 5 root root    4096 Nov 30 12:20 ..
> -rw-r--r-- 1 root root   89278 Nov 30 11:29 cproton.py
> -rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyc
> -rw-r--r-- 1 root root  103293 Nov 30 12:28 cproton.pyo
> -rw-r--r-- 1 root root 1445471 Nov 30 12:20 _cproton.so
> -rw-r--r-- 1 root root  109162 Nov 30 11:20 __init__.py
> -rw-r--r-- 1 root root  151464 Nov 30 12:28 __init__.pyc
> -rw-r--r-- 1 root root  151257 Nov 30 12:28 __init__.pyo
> 
> 
> I set PYTHONPATH=/usr/local/lib/proton/bindings/python
> 
> but when I try
> ./msgr-recv.py
> 
> I get
> 
> Traceback (most recent call last):
>   File "./msgr-recv.py", line 23, in <module>
>     from proton import *
> ImportError: No module named proton
> 
> 
> Now I'm thinking that make install hasn't pulled all of the necessary files
> into /usr/local/lib/proton/bindings/python the reason I'm thinking that is
> when I tried running
> source config.sh
> 
> I noticed that the PYTHONPATH it created looked like
> 
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/tests/python:/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/home/fadams/qpid/git/qpid-proton/build/proton-c/bindings/python
> 
> and this *does* appear to work, the significant bit seems to be the
> /home/fadams/qpid/git/qpid-proton/proton-c/bindings/python bit, because when
> I tried:
> 
> PYTHONPATH=/home/fadams/qpid/git/qpid-proton/proton-c/bindings/python:/usr/local/lib/proton/bindings/python
> 
> that worked too.
> 
> So I'm thinking that the directory proton and its contents in
> qpid-proton/proton-c/bindings/python need to be copied to
> 
> /usr/local/lib/proton/bindings/python
> 
> as part of the make install process too.
> 
> Does that seem about right?

The code was migrated to a directory, so should be installing to:

  /path/to/python/site-libs/proton

?

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/