views:

106

answers:

2

I use the easy_install to install python packages in a virtuaenv under windows7. Due to the UAV, I have to run the CMD as administrator for installing packages. Here comes the problem, I notice that I can't import the package from a normal user account.

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

But tempita-0.4-py2.6 is just right there in the site-package. Also, run python as administrator, import works correctly. That's the problem of permission. It's strange, I don't know why, but only .egg files are installed with restricted permissions setting. I find there is an article about this problem:

easy_install no longer easy on Vista

It doesn't work to change the owner or permissions of parent folder, the only solution I know is to modify the permissions of those egg files one by one. This is really annoying, why easy_install set such a restricted permissions only to .egg files rather than .py files? And how can I solve this problem without shut UAV down or run as a super user?

A: 

I've started using distribute in lieu of setuptools, because the distribute team has been much more proactive in tracking down problems. Curiously, it appears as if distribute no longer creates zip eggs on my Windows 7 system, perhaps for the permissions issues you've encountered. Switching to distribute might be a solution for you, although I would understand if that seems like more of a hack than a fix.

Jason R. Coombs
A: 

You might be able to use ICACLS to reset the file permissions.

ICACLS c:\Python26\lib\site-packages\*.egg /reset

I suggest trying it with one file first before doing *.egg. Note that *.egg will likely match egg folders as well.

Jason R. Coombs