threading+ftp+import => block

Damjan gdamjan at gmail.com
Tue Jul 25 20:09:08 EDT 2006


Panard wrote:

> Hi,
> I'm experiencing a strange problem while trying to manage a ftp connection
> into a separate thread.
> 
> I'm on linux, python 2.4.3
> 
> Here is a test :
> ------ ftp_thread.py ------
> import ftplib
> import threading
> import datetime
> 
> class test( threading.Thread ) :
>         ftp_conn = ftplib.FTP("localhost","user","pass")
>         def run( self ) :
>                 print self.ftp_conn.pwd()
>                 self.ftp_conn.dir("/")
>                 print datetime.date.today()
> def t() :
>         t = test()
>         t.start()
>         t.join()
> t()
> -------
> 
> If I do :
> $ python ftp_thread.py
> /
> drwxrwsr-x   2 panard   ftp          4096 Jul 24 12:48 archives
> 2006-07-24
> ==> Works perfectly
> 
> But :
> $ python
>>>> import ftp_thread
> /
> <program block>

This has been documented in the blog posts titled "How well you know Python"
(find it on google)

The problem is that, once you run "import ftp_thread" a lock is set in the
Python interpreter, so then you can't start a new thread... (this from the
back of my mind).



-- 
damjan



More information about the Python-list mailing list