questions about multiprocessing

Philip Semanchuk philip at semanchuk.com
Fri Mar 4 23:19:37 EST 2011


On Mar 4, 2011, at 11:08 PM, Vincent Ren wrote:

> Hello, everyone, recently I am trying to learn python's
> multiprocessing, but
> I got confused as a beginner.
> 
> If I run the code below:
> 
> from multiprocessing import Pool
> import urllib2
> otasks = [
>     'http://www.php.net'
>     'http://www.python.org'
>     'http://www.perl.org'
>     'http://www.gnu.org'
>     ]
> 
> def f(url):
>     return urllib2.urlopen(url).read()
> 
> pool = Pool(processes = 2)
> print pool.map(f, tasks)

Hi Vincent,
I don't think that's the code you're running, because that code won't run. Here's what I get when I run the code you gave us:

Traceback (most recent call last):
  File "x.py", line 14, in <module>
    print pool.map(f, tasks)
NameError: name 'tasks' is not defined


When I change the name of "otasks" to "tasks", I get the nonnumeric port error that you reported. 

Me, I would debug it by adding a print statement to f():
def f(url):
    print url
    return urllib2.urlopen(url).read()


Your problem isn't related to multiprocessing.

Good luck 
Philip




> 
> 
> I'll receive this message:
> 
> Traceback (most recent call last):
>   File "<stdin>", line 14, in <module>
>   File "/usr/lib/python2.6/multiprocessing/pool.py", line 148, in map
>     return self.map_async(func, iterable, chunksize).get()
>   File "/usr/lib/python2.6/multiprocessing/pool.py", line 422, in get
>     raise self._value
> httplib.InvalidURL: nonnumeric port: ''
> 
> 
> 
> I run Python 2.6 on Ubuntu 10.10
> 
> 
> Regards
> Vincent
> 
> 
> -- 
> http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list