Clickable hyperlinks

Deborah Swanson python at deborahswanson.net
Wed Jan 4 23:19:33 EST 2017


Chris Angelico wrote, on January 04, 2017 4:16 AM
> 
> Yeah, there's no simple answer; however, you'll find that 
> Python on many platforms is entirely capable of popping a URL 
> up in the user's default browser. Check this out:
> 
> >>> import antigravity

I downloaded the code from the Package Index, but there really wasn't
much in it. This is the entire .py file:

STRIP_URL = "http://xkcd.com/353/"

def start():
    return STRIP_URL

And setup.py is equally disappointing:
from distutils.core import setup

setup(
    name='antigravity',
    version='0.1',
    description='A really simple module that allow everyone to do
"import antigravity"',
    author='Fabien Schwob',
    author_email='antigravity at x-phuture.com',
    url='http://fabien.schwob.org/antigravity/',
    packages=['antigravity'],
)

> This uses the 'webbrowser' module, which knows about a number 
> of different ways to open a browser, and will attempt them 
> all. So if you can figure out the UI part of things, actually 
> making the link pop up in a browser isn't too hard; for 
> instance, if you're doing OAuth at the command line and need 
> the user to go and authenticate, you can simply 
> webbrowser.open("http://......./") and it'll DTRT.
> 
> ChrisA

All the action of antigravity must be done by the import statement. When
import opens a module that immediately returns a url, it must have a
mechanism to open it in a browser.

It would be very easy to do the same thing with my own .py and import it
into another .py.  

Or, take a look at import's code and figure out how it opens a url in a
browser. I imagine it's the 'webbrowser' module you mention. If it tries
several methods, just pick one that will work for you.

Or, take a look at this Index of Packages Matching 'webbrowser' (~50
packages)
https://pypi.python.org/pypi?%3Aaction=search&term=webbrowser&submit=sea
rch

D'Arcy was right, there's lots in python that's internet aware, though
that wasn't the question I knew to ask.



More information about the Python-list mailing list