1

我使用easy_install在windows7下的virtuaenv中安装python包。由于无人机,我必须以管理员身份运行 CMD 才能安装软件包。问题来了,我注意到我无法从普通用户帐户导入包。

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

但是 tempita-0.4-py2.6 就在站点包中。另外,以管理员身份运行 python,导入工作正常。这就是权限的问题。这很奇怪,我不知道为什么,但只有 .egg 文件安装了受限权限设置。我发现有一篇关于这个问题的文章:

在 Vista 上 easy_install 不再容易

更改父文件夹的所有者或权限是行不通的,我知道的唯一解决方案是逐个修改那些egg文件的权限。这真的很烦人,为什么 easy_install 只对 .egg 文件而不是 .py 文件设置这样的受限权限?在不关闭无人机或以超级用户身份运行的情况下,如何解决这个问题?

4

2 回答 2

0

您也许可以使用 ICACLS 重置文件权限。

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

我建议先尝试一个文件,然后再执行*.egg. 请注意,这*.egg也可能与 egg 文件夹匹配。

于 2010-02-15T12:43:00.447 回答
0

我已经开始使用distribute来代替setuptools,因为distribute 团队在追踪问题方面更加积极主动。奇怪的是,distribute 似乎不再在我的 Windows 7 系统上创建 zip Egg,这可能是因为您遇到了权限问题。切换到分发可能是您的解决方案,尽管我会理解这看起来更像是一种黑客攻击而不是修复。

于 2010-02-15T12:40:58.890 回答