pythonbrew icon indicating copy to clipboard operation
pythonbrew copied to clipboard

Warn when installing incomplete python because of missing -devel packages

Open gthb opened this issue 12 years ago • 5 comments

When Python is built without certain -devel packages installed, it is built without support for the corresponding functionality. In particular, SQLite and bzip2. One discovers this later when something fails (e.g. installing a .tar.bz2 tarball) and then must reinstall Python.

It would be nice to emit a warning (or maybe even fail) when building an incomplete Python, suggesting that these packages be installed first. E.g. on Debian:

sudo aptitude install libsqlite3-dev libbz2-dev

gthb avatar Feb 15 '13 13:02 gthb

Maybe just emit to the console this bit from the build output:

Failed to find the necessary bits to build these modules:
_bsddb             _curses            _curses_panel   
_sqlite3           _tkinter           bsddb185        
bz2                dbm                dl              
gdbm               imageop            readline        
sunaudiodev

gthb avatar Feb 15 '13 13:02 gthb

All well and good, but what about people who don't want these things. The three reasons why this shouldn't be added:

  • Excessive warning/failures.
  • Not everyone needs or wants these.
  • This tool automates the building/installation of python, but doesn't hold your hand. For example, it also doesn't tell you to install build utilities.

All in all, this seems a bit iffy and I don't think this sort of thing should be in the main pythonbrew. However it is open source, you're free to fork and add these features and put in a pull request or have your own version of pythonbrew.

brandon-m-skinner avatar Feb 20 '13 01:02 brandon-m-skinner

Doesn't hold your hand? Thats the biggest pile I've ever heard. If software fails and doesn't tell you why thats a bug. The doc also doesn't mention requirements. Also a bug.

I don't suggest pythonbrew go full meta like rvm --autolibs but documenting requirements is just good software practice. Either improve the doc or fix the tool.

metcalfc avatar Apr 04 '13 01:04 metcalfc

+1 on comment from @gthb, would be convenient to have that info bubbled up to the console.

cpenner461 avatar May 03 '13 20:05 cpenner461

+1 for this. I'm a beginner, following the Tango with Dango web book, and used pythonbrew in a virtual machine to install 2.7.5. I've spent the last two days trying to figure out why sqlite3 didn't work, and came here to file a bug, that these packages should be required before python runs:

libbz2-dev libdb5.1-dev libexpat1-dev libncurses5-dev libreadline6-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev 

Now I see that you're not going to fix it? I think that Pythonbrew is awesome, especially for beginners like me, but hiding this requirement and not echoing the results of make back to the console (or even to the log file) have very frustrating results.

For beginners like me, please let the pythonbrew install script AT LEAST warn users that these packages should be installed for full functionality.

Thanks!

PS for other django beginners following the Tango with Django, please see Adorno; it's a script that will help you set up a virtual machine with virtual environments and python all set up to follow the tango with Django web series: https://github.com/swiftarrow/Adorno

swiftarrow avatar Jan 04 '14 10:01 swiftarrow