vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| When installing ocfs2-tools on Slackware 12 I have also tried to get ocfs2console working. This program requires some python modules, among them pygtk. It seems as if the installation of ocfs2console also installs some python modules. To me it seems as if python modules, when compiled from source, like most other software, by default prefers to install itself below /usr/local. However, when trying to use a python script that calls those modules they are not found. Debugging with strace shows that python only looks in /usr/lib/python*/site-packages, not /usr/local/lib/python*/site-packages. I am not very familiar with Python myself. I don't know how to write python programs and I don't know what to expect from a default python installation. The only thing that I can say is that something seems to be broken here. Is the Slackware 12 python installation broken as it doesn't look in /usr/local for modules? Is pygtk broken as it installs in /usr/local without telling python to look for modules there? I think that the problem can be solved by giving the switch --prefix=/usr to the configure script of pygtk. By doing so it will install in /usr instead of /usr/local. I see two drawbacks with this solution. 1) Maybe I'm pedantic, but I think that software which I have compiled from source myself should go to /usr/local. 2) Pygtk uses a configure script, but many other python modules uses a setup.py script instead. I don't think setup.py usually is able to take any prefix argument. Does anyone know if it is the Slackware python installation which is broken, or if it is python modules like pygtk, pygobject and ocfs2console that is broken? regards Henrik -- The address in the header is only to prevent spam. My real address is: hc1(at)poolhem.se Examples of addresses which go to spammers: root@localhost postmaster@localhost |
| |||
| On Thu, 16 Aug 2007 22:31:48 +0200, Henrik Carlqvist wrote: snip..... > > Is pygtk broken as it installs in /usr/local without telling python to > look for modules there? > No. As you write below, it uses a configure script. It's not a python module per se. > > 2) Pygtk uses a configure script, but many other python modules uses a > setup.py script instead. I don't think setup.py usually is able to take > any prefix argument. > ../configure --prefix=/usr....... > Does anyone know if it is the Slackware python installation which is > broken, or if it is python modules like pygtk, pygobject and > ocfs2console that is broken? > Generally, python modules can be installed as follows: python setup.py install This should find the current python installation. The option --root=/dir can be used when building slackware packages. i.e. python setup.py install --root=/tmp/package-location Then, all the files will be in /tmp/package-location for gzipping, etc. There is no slackware python installation per se. Each module provides it's own setup.py file. It's very generic and uses distutils to handle the behind the scenes work. I would look to your particular application. Everything else should just go where python is installed automatically. Exceptions being pygtk, pycairo, pygobject and other binding type libraries. They will drop files into the python directory, but you must use --prefix=/usr otherwise they will break. Another thing, unlike using cpan (PERL), python generally does not install dependencies without your knowledge. It's possible your application was shipped with some but python would not generally fetch them. > regards Henrik Good luck. -- Peter |
| |||
| "Henrik Carlqvist" typed: > When installing ocfs2-tools on Slackware 12 I have also tried to get > ocfs2console working. This program requires some python modules, among > them pygtk. It seems as if the installation of ocfs2console also > installs some python modules. > > To me it seems as if python modules, when compiled from source, like > most other software, by default prefers to install itself > below /usr/local. > > However, when trying to use a python script that calls those modules > they are not found. Debugging with strace shows that python only > looks in /usr/lib/python*/site-packages, > not /usr/local/lib/python*/site-packages. > > I am not very familiar with Python myself. I don't know how to write > python programs and I don't know what to expect from a default python > installation. The only thing that I can say is that something seems > to be broken here. > > Is the Slackware 12 python installation broken as it doesn't look in > /usr/local for modules? I do a lot of Python development on Slackware systems. About the only way I install (and have ever installed) Python modules is by running `python setup.py install` from within the source directory of the Python modules. This installs the relevant files for the modules into /usr/lib/python<version>/site-packages/. I've never compiled Python modules from source any other way. -- Ayaz Ahmed Khan |
| |||
| On Aug 16, 10:31 pm, Henrik Carlqvist <Henrik.Carlqv...@deadspam.com> wrote: > When installing ocfs2-tools on Slackware 12 I have also tried to get > ocfs2console working. This program requires some python modules, among > them pygtk. It seems as if the installation of ocfs2console also > installs some python modules. > > [ ... ] > You may wish to try pygtk SlackBuilds.org script: http://slackbuilds.org/repository/12.0/libraries/pygtk/. It will build the module "proper" way, and create a Slackware package, that you may install/uninstall using native Slackware installpkg/removepkg tools. Regards. |
| |||
| Peter <peter@localhost.com> wrote: > There is no slackware python installation per se. Each module provides > it's own setup.py file. It's very generic and uses distutils to handle > the behind the scenes work. Pygtk ships with both a configure script and a setup.py. However, when running setup.py you get a warning that distutils is not supported and that setup.py is shipped only to support MS Windows installations. > Everything else should just go where python is installed automatically. > Exceptions being pygtk, pycairo, pygobject and other binding type > libraries. They will drop files into the python directory, but you must > use --prefix=/usr otherwise they will break. Thanks for your reply. From this I can now tell that it is not the Slackware python installation that is broken. Instead I consider pygtk to be slightly broken as it doesn't work with default settings for configure and giving the --prefix=/usr causes it to not be installed in /usr/local as I would have prefered. > Another thing, unlike using cpan (PERL), python generally does not > install dependencies without your knowledge. It's possible your > application was shipped with some but python would not generally fetch > them. No, ocfs2-tools did not fetch them for me. However, I am writing my own makepack rules for pygtk and ocfs2-tools. Once I get them working I can simply type: make ocfs2-tools install and watch it download, compile and install the application with all its dependencies. regards Henrik -- The address in the header is only to prevent spam. My real address is: hc1(at)poolhem.se Examples of addresses which go to spammers: root@localhost postmaster@localhost |
| |||
| Ayaz Ahmed Khan <ayaz@dev.null> wrote: > I do a lot of Python development on Slackware systems. About the only > way I install (and have ever installed) Python modules is by running > `python setup.py install` from within the source directory of the Python > modules. This installs the relevant files for the modules > into /usr/lib/python<version>/site-packages/. I've never compiled > Python modules from source any other way. Thanks for your reply. Also pygtk ships with a setup.py, but that file gives a warning and pygtk is supposed to be installed with "./configure; make; make install" instead. regards Henrik -- The address in the header is only to prevent spam. My real address is: hc1(at)poolhem.se Examples of addresses which go to spammers: root@localhost postmaster@localhost |
| |||
| Crni Gorac <cgorac@gmail.com> wrote: > You may wish to try pygtk SlackBuilds.org script: > http://slackbuilds.org/repository/12.0/libraries/pygtk/. It will > build the module "proper" way, and create a Slackware package, that > you may install/uninstall using native Slackware installpkg/removepkg > tools. Thanks! From that script I can see that it uses "./configure --prefix=/usr" to get a working installation. I suppose that I will have to do it that way also even though I would have prefered to have it installed in /usr/local. regards Henrik -- The address in the header is only to prevent spam. My real address is: hc1(at)poolhem.se Examples of addresses which go to spammers: root@localhost postmaster@localhost |
| |||
| On Fri, 17 Aug 2007 08:47:16 +0200, Henrik Carlqvist wrote: > Crni Gorac <cgorac@gmail.com> wrote: >> You may wish to try pygtk SlackBuilds.org script: >> http://slackbuilds.org/repository/12.0/libraries/pygtk/. It will build >> the module "proper" way, and create a Slackware package, that you may >> install/uninstall using native Slackware installpkg/removepkg tools. > > Thanks! > > From that script I can see that it uses "./configure --prefix=/usr" to > get a working installation. I suppose that I will have to do it that way > also even though I would have prefered to have it installed in > /usr/local. > > regards Henrik Perl and Python programs must be installed in the language's installation directory, period. This is actually a defect in the pygtk and other binding type programs' configure scripts. The script should find the python installation and use that root as the default. All added programs go into the site-packages subdirectory of the python install dir. These would include yours plus all non-core python libraries and bindings. -- Peter |
| |||
| Peter <peter@localhost.com> wrote: > Perl and Python programs must be installed in the language's installation > directory, period. I now see that you are completely right about this. I have seen other python modules install in /usr/local/lib/python*/site-packages. But now when I look closer at one such module, mercurial, I can see that it installed _both_ in /usr/local/lib and /usr/lib. Both directories contain the same files from the module. Duh... regards Henrik -- The address in the header is only to prevent spam. My real address is: hc1(at)poolhem.se Examples of addresses which go to spammers: root@localhost postmaster@localhost |
| ||||
| Peter <peter@localhost.com> wrote: > Perl and Python programs must be installed in the language's installation ^^^^^^^^^ "modules" you meant BTW. Slackware 12.0 comes without sqlite. However in recent python there is a standard module -- wrapper for this library. But this wrapper, of course, won't work even after instalation of sqlite(3). To get the functionality the python package must by recompiled. Fortunatelly, one can recompile without any modifications in SlackBuild script. p.o. |