module error in Vista -- works as administrator

S

sawilla

First, I'm new to Python. I'm getting and error when I run Python
2.5.2 as a regular user in Vista but not when I run Python as an
administrator.

For example, if I type "import numpy" after I launch python from an
adminstrator-privileged command window it loads fine. However, from a
regular-user command window I get:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy

Thanks in advance for your help.

Reg
 
J

John Machin

sawilla said:
First, I'm new to Python. I'm getting and error when I run Python
2.5.2 as a regular user in Vista but not when I run Python as an
administrator.

For example, if I type "import numpy" after I launch python from an
adminstrator-privileged command window it loads fine. However, from a
regular-user command window I get:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy

Log on as administrator, start python in command window and do this:

import sys
sys.path # shows where python is looking for importables
import numpy
import os.path
print os.path.abspath(numpy.__file__) # shows where it found numpy

Log on as ordinary user, start python in command window and do this:

import sys
sys.path
# check how this is different from the admin's sys.path

If you can't see what to do after that, come back here with the output
from those steps.

HTH,
John
 
S

sawilla

Log on as administrator, start python in command window and do this:

import sys
sys.path # shows where python is looking for importables
import numpy
import os.path
print os.path.abspath(numpy.__file__) # shows where it found numpy

Log on as ordinary user, start python in command window and do this:

import sys
sys.path
# check how this is different from the admin's sys.path

If you can't see what to do after that, come back here with the output
from those steps.

HTH,
John

That was a great help, thank you. I now see what is causing the
problem but I don't know how to fix it. I used easy_install to install
several packages. When I run Python from an administrator command
window all of the directories in C:\Program Files\Python25\Lib\site-
packages\easy-install.pth are added to the sys.path. When I run it as
a regular user, those directories are not added to the sys.path and so
Python can't find the modules.

I know how to manually add those directories to Python's search path
but then I'll need to update the path every time I install something.
How do I get Python to automatically load the easy-install.pth file
for the regular user account?

Reg
 
J

John Machin

sawilla said:
That was a great help, thank you. I now see what is causing the
problem but I don't know how to fix it. I used easy_install to install
several packages. When I run Python from an administrator command
window all of the directories in C:\Program Files\Python25\Lib\site-
packages\easy-install.pth are added to the sys.path. When I run it as
a regular user, those directories are not added to the sys.path and so
Python can't find the modules.

I know how to manually add those directories to Python's search path
but then I'll need to update the path every time I install something.
How do I get Python to automatically load the easy-install.pth file
for the regular user account?

Reg

"""
If you can't see what to do after that, come back here with the output
from those steps.
"""
in particular what is in sys.path for the non-admin user.
Also what are the access rights to the easy-install.pth file?
 
S

sawilla

The access writes to easy-install.pth for regular users is read and
execute.

The output of sys.path for regular users is:
['', 'C:\\Program Files\\Python25\\lib\\site-packages\
\setuptools-0.6c8-py2.5.eg
g', 'C:\\Program Files\\Python25\\python25.zip', 'C:\\Program Files\
\Python25\\D
LLs', 'C:\\Program Files\\Python25\\lib', 'C:\\Program Files\\Python25\
\lib\\pla
t-win', 'C:\\Program Files\\Python25\\lib\\lib-tk', 'C:\\Program Files\
\Python25
', 'C:\\Program Files\\Python25\\lib\\site-packages']

The output of sys.path for the admin user is:
['', 'C:\\Program Files\\Python25\\lib\\site-packages\
\setuptools-0.6c8-py2.5.eg
g', 'C:\\Program Files\\Python25\\lib\\site-packages\\networkx-0.36-
py2.5.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\numpy-1.0.4-py2.5-
win32.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\scipy-0.6.0-py2.5-
win32.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\matplotlib-0.91.2-
py2.5-win32.
egg', 'C:\\Program Files\\Python25\\lib\\site-packages\\dot2tex-2.7.0-
py2.5.egg'
, 'C:\\Program Files\\Python25\\lib\\site-packages\\pydot-1.0.2-
py2.5.egg', 'C:\
\Program Files\\Python25\\lib\\site-packages\\pyparsing-1.4.11-py2.5-
win32.egg',
'C:\\Program Files\\Python25\\python25.zip', 'C:\\Program Files\
\Python25\\DLLs
', 'C:\\Program Files\\Python25\\lib', 'C:\\Program Files\\Python25\
\lib\\plat-w
in', 'C:\\Program Files\\Python25\\lib\\lib-tk', 'C:\\Program Files\
\Python25',
'C:\\Program Files\\Python25\\lib\\site-packages']

The contents of easy-install.pth are:
import sys; sys.__plen = len(sys.path)
./setuptools-0.6c8-py2.5.egg
./networkx-0.36-py2.5.egg
./numpy-1.0.4-py2.5-win32.egg
./scipy-0.6.0-py2.5-win32.egg
./matplotlib-0.91.2-py2.5-win32.egg
./dot2tex-2.7.0-py2.5.egg
./pydot-1.0.2-py2.5.egg
./pyparsing-1.4.11-py2.5-win32.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
p=getattr(sys,
'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

The location where numpy is found:C:\Program Files\Python25\lib\site-packages\numpy-1.0.4-py2.5-win32.egg
\numpy\__
init__.pyc

So I believe I need to have the easy-install.pth file executed
automatically for regular users but I don't know how to do this.

Reg
 
S

sawilla

I've discovered the cause of the problem. At some point previously,
Windows Vista had created a copy of the site-packages directory in a
virtual store for the user account. The easy-install.pth file in the
virtual store did not contain the same path information as the easy-
install.pth that the administrator account sees. I deleted the user's
Python25 directory in the virtual store and now the user's sys.path
contains all of the necessary paths.

Reg

The access writes to easy-install.pth for regular users is read and
execute.

The output of sys.path for regular users is:
['', 'C:\\Program Files\\Python25\\lib\\site-packages\
\setuptools-0.6c8-py2.5.eg
g', 'C:\\Program Files\\Python25\\python25.zip', 'C:\\Program Files\
\Python25\\D
LLs', 'C:\\Program Files\\Python25\\lib', 'C:\\Program Files\\Python25\
\lib\\pla
t-win', 'C:\\Program Files\\Python25\\lib\\lib-tk', 'C:\\Program Files\
\Python25
', 'C:\\Program Files\\Python25\\lib\\site-packages']

The output of sys.path for the admin user is:
['', 'C:\\Program Files\\Python25\\lib\\site-packages\
\setuptools-0.6c8-py2.5.eg
g', 'C:\\Program Files\\Python25\\lib\\site-packages\\networkx-0.36-
py2.5.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\numpy-1.0.4-py2.5-
win32.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\scipy-0.6.0-py2.5-
win32.egg',
'C:\\Program Files\\Python25\\lib\\site-packages\\matplotlib-0.91.2-
py2.5-win32.
egg', 'C:\\Program Files\\Python25\\lib\\site-packages\\dot2tex-2.7.0-
py2.5.egg'
, 'C:\\Program Files\\Python25\\lib\\site-packages\\pydot-1.0.2-
py2.5.egg', 'C:\
\Program Files\\Python25\\lib\\site-packages\\pyparsing-1.4.11-py2.5-
win32.egg',
 'C:\\Program Files\\Python25\\python25.zip', 'C:\\Program Files\
\Python25\\DLLs
', 'C:\\Program Files\\Python25\\lib', 'C:\\Program Files\\Python25\
\lib\\plat-w
in', 'C:\\Program Files\\Python25\\lib\\lib-tk', 'C:\\Program Files\
\Python25',
'C:\\Program Files\\Python25\\lib\\site-packages']

The contents of easy-install.pth are:
import sys; sys.__plen = len(sys.path)
./setuptools-0.6c8-py2.5.egg
./networkx-0.36-py2.5.egg
./numpy-1.0.4-py2.5-win32.egg
./scipy-0.6.0-py2.5-win32.egg
./matplotlib-0.91.2-py2.5-win32.egg
./dot2tex-2.7.0-py2.5.egg
./pydot-1.0.2-py2.5.egg
./pyparsing-1.4.11-py2.5-win32.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
p=getattr(sys,
'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

The location where numpy is found:>>> print os.path.abspath(numpy.__file__)

C:\Program Files\Python25\lib\site-packages\numpy-1.0.4-py2.5-win32.egg
\numpy\__
init__.pyc

So I believe I need to have the easy-install.pth file executed
automatically for regular users but I don't know how to do this.

Reg

sawillawrote:
"""
If you can't see what to do after that, come back here with the output
from those steps.
"""
in particular what is in sys.path for the non-admin user.
Also what are the access rights to the easy-install.pth file?- Hide quoted text -
- Show quoted text -- Hide quoted text -

- Show quoted text -
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,008
Latest member
HaroldDark

Latest Threads

Top