Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: Steve Ward To: jason AT tishler DOT net CC: cygwin AT cygwin DOT com In-reply-to: <20050419124816.GB2772@tishler.net> (message from Jason Tishler on Tue, 19 Apr 2005 08:48:16 -0400) Subject: Re: Symlinks don't work in python??? Reply-to: ward AT mit DOT edu References: <20050411142112 DOT GA3796 AT tishler DOT net> <20050416021255 DOT GA2624 AT tishler DOT net> <20050419124816 DOT GB2772 AT tishler DOT net> Message-Id: Date: Tue, 19 Apr 2005 10:36:55 -0400 Jason - Thanks for all the good work. The PYTHONCASEOK workaround indeed seems to solve the problem. From your description, it seems that the trouble is that the real name (the name of the symlink target) is used rather than the name of the symlink; I should be able to circumvent naming problems, including case problems on Windows, via appropriately-named symlinks. It seems that this should be a straightforward fix to the case-insensitive code hack ... but, of course, I haven't looked at that code. Again, thanks for the insight! - Steve Date: Tue, 19 Apr 2005 08:48:16 -0400 From: Jason Tishler Mail-Followup-To: cygwin AT cygwin DOT com, ward AT mit DOT edu Content-Disposition: inline X-Scanned-By: MIMEDefang 2.42 X-Scan-Signature: e350b74e66957c09d06207840ae4bf8e X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on k2.csail.mit.edu X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,SPF_HELO_PASS autolearn=ham version=3.0.2 Steve, On Fri, Apr 15, 2005 at 10:12:56PM -0400, Jason Tishler wrote: > On Fri, Apr 15, 2005 at 03:54:37PM -0400, Steve Ward wrote: > > Can you try my failing experiment (symlink bar.py to file foo.py in > > same directory)? > > I was able reproduce your problem on my way out of work today. > > > It seems using a different name for the symlink may cause the > > trouble... I have no idea why. > > Can you strace the issue and report back to the list? If not, then I > will try when I'm back at work on Monday. AFAICT, symlinking bar.py to foo.py never worked or at least since case-insensitive file system support was added to Python in 2/2001: http://www.amk.ca/python/2.1/index.html#SECTION0001000000000000000000 The problem is Cygwin specific code is invoked during imports to make sure one imports a module using the same case as the file stored in the file system. For example, "foo" will match "foo.py" but not "FoO.py", etc. When you import bar (i.e., bar.py) which is symlinked to foo.py the case checking code fails (because "bar" != "foo") and the module is skipped. You can workaround the problem by defining PYTHONCASEOK: $ PYTHONCASEOK= python -c 'import bar' $ I will work with the Python developers to try to come up with a better long term solution. Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/