Barak, Ron wrote:
-----Original Message-----
From: Dave Angel [mailto:da...@ieee.org]
Sent: Tuesday, March 16, 2010 5:04 PM
To: Barak, Ron
Cc: Pablo Recio Quijano; python-list@python.org
Subject: RE: How to add a library path to pythonpath ?



Barak, Ron wrote:
Thanks for the suggestion Pable.

However, I really need the $PYTHONPATH to include this
additional library, so all Python scripts could use it.
In Windows I have defined PYTHONPATH as
c:\views\cc_view\TS_svm_ts_tool\SVMInspector\lib\, and also in the
Windows registry I have


HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\version\PythonPath\ as
C:\Python26\Lib;C:\Python26\DLLs;C:\views\cc_view\TS_svm_ts_tool\SVMIn
spector\lib\;C:\Python26\Lib\lib-tk;

However, even with all the above, the SVMInspecor modules
are not found.
See my response at the end.  Top-posting makes for a very
confusing thread.
<snip>

2010/3/16 Barak, Ron <ron.ba...@lsi.com<mailto:ron.ba...@lsi.com>>

Hi,

I'm trying to add a library path to my pythonpath, but
seems it is not
accepted -

On Windows DOS window:

C:\>echo %PYTHONPATH%
c:\views\cc_view\TS_svm_ts_tool\SVMInspector\lib\

C:\>python -c "import sys ; print sys.path"
['', 'c:\\views\\cc_view\\TS_svm_ts_tool\\SVMInspector\\lib',
'C:\\WINDOWS\\syst em32\\python26.zip', 'C:\\Python26\\DLLs',
'C:\\Python26\\lib', 'C:\\Python26\\l ib\\plat-win',
'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\
site-packages',
'C:\\Python26\\lib\\site-packages\\wx-2.8-msw-unicode']

C:\>

On Windows cygwin:

$ echo $PYTHONPATH
.:/cygdrive/c/views/cc_view/TS_svm_ts_tool/SVMInspector/lib/

$ python -c "import sys ; print sys.path"
['',

'.:\\cygdrive\\c\\views\\cc_view\\TS_svm_ts_tool\\SVMInspector\\lib',
'C:\\WINDOWS\\system32\\python26.zip', 'c:\\Python26\\DLLs',
'c:\\Python26\\lib', 'c:\\Python26\\lib\\plat-win',
'c:\\Python26\\lib\\lib-tk', 'c:\\Python26',
'c:\\Python26\\lib\\site-packages',
'c:\\Python26\\lib\\site-packages\\wx-2.8-msw-unicode']

$

What am I doing wrong ?

Thanks,
Ron.



In your original message, what you displayed worked exactly
as expected.  As you didn't say what made you think something
was wrong, I ignored the message.

Now, you say that some modules are not found.  So how about
giving some more specifics so someone can actually debug the
problem.  Pick a particular module, tell us the complete path
to that module, and show us both the sys.path strings (which
look correct for the Windows case, and of course bogus for
the cygwin case), as well as the offending import statement
and its traceback.

DaveA

Hi Dave,

My Python is the Windows Python (I need this for wxPython):

$ ls -ls `which python`
1 lrwxrwxrwx 1 rbarak mkgroup-l-d 31 Mar  4 14:02 /usr/bin/python -> 
/cygdrive/c/Python26/python.exe

Here's a demo script:

#!/usr/bin/env python

import sys
print "\n",sys.path,"\n"

from ErrorManager.ErrorManager import ErrorManager

And it's run produces:

$ python -u  tmp.py

['c:\\views\\cc_view\\TS_svm_ts_tool\\svm_ts_tool', 
'.:\\cygdrive\\c\\views\\cc_view\\TS_svm_ts_tool\\SVMInspector\\lib', 
'C:\\WINDOWS\\system32\\python26.zip', 'c:\\Python26\\DLLs', 
'c:\\Python26\\lib', 'c:\\Python26\\lib\\plat-win', 
'c:\\Python26\\lib\\lib-tk', 'c:\\Python26', 
'c:\\Python26\\lib\\site-packages', 
'c:\\Python26\\lib\\site-packages\\wx-2.8-msw-unicode']

Traceback (most recent call last):
  File "tmp.py", line 6, in <module>
    from ErrorManager.ErrorManager import ErrorManager
ImportError: No module named ErrorManager.ErrorManager

$ ls -ls 
/cygdrive/c/views/cc_view/TS_svm_ts_tool/SVMInspector/lib/ErrorManager/ErrorManager.py
4 -rwxr-xr-x 1 rbarak ???????? 1843 Sep 21 19:16 
/cygdrive/c/views/cc_view/TS_svm_ts_tool/SVMInspector/lib/ErrorManager/ErrorManager.py

$ grep ErrorManager  /cygdrive/c/views/cc_view/TS_svm_ts_tool/SVMInspector/lib/
ErrorManager/ErrorManager.py
class ErrorManager:

$ echo $PYTHONPATH
.:/cygdrive/c/views/cc_view/TS_svm_ts_tool/SVMInspector/lib/

Please let me know if the above is enough, or you'd like to see the results 
from a Windows' DOS window.

Thanks,
Ron.

Well, I pointed out that your cygwin path is bogus, so of course it won't work. One of those entries is

   '.:\\cygdrive\\c\\views\\cc_view\\TS_svm_ts_tool\\SVMInspector\\lib'

I use Linux, and I use Windows. But cygwin's glomming together has never made sense; some things are Unix-like, and others are Windows-like. So anything you do in that environment is beyond me.

If I had to guess, though I'd say you wanted to drop those first two characters from your PYTHONPATH. If you really wanted two directories there, you should be separating them with semicolon (Windows rules), rather than colon (Linux rules). First thing I'd do to test my theories is to print something like:
    print sys.path[1]
    print os.listdir(sys.path[1])
Does Python even see the cygwin view of the world ?

You also don't show the location of the module you're trying to import. I'm guessing that it's at ...SVMInspector/lib/ErrorManager/ErrorManager.py
Do you have a file     ...SVMInspector/lib/ErrorManager/__init__.py     ?

I would seriously recommend against naming your package, your module, and your class all the same thing. Makes debugging very hard. At least make them have different case combinations.

DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to