Проблема с разрешением .egg для easy_install под windows7 / vista
-
20-09-2019 - |
Вопрос
Я использую easy_install для установки пакетов python в virtualenv под windows7.Из-за беспилотника мне приходится запускать 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 устанавливаются с ограниченными разрешениями.Я нахожу, что есть статья об этой проблеме:
easy_install больше не является простым в Vista
Изменить владельца или разрешения родительской папки не работает, единственное решение, которое я знаю, - это изменять разрешения этих файлов egg один за другим.Это действительно раздражает, почему easy_install установил такие ограниченные разрешения только для файлов .egg, а не для файлов .py?И как я могу решить эту проблему, не выключая беспилотник и не запускаясь от имени суперпользователя?
Решение
Я начал использовать распространять вместо setuptools, потому что команда распространения была гораздо более активной в отслеживании проблем.Любопытно, что похоже, что distribute больше не создает zip-файлы в моей системе Windows 7, возможно, из-за проблем с разрешениями, с которыми вы столкнулись.Переход на дистрибутив может быть решением для вас, хотя я бы понял, если бы это казалось скорее взломом, чем исправлением.
Другие советы
Возможно, вы сможете использовать ICACLS для сброса прав доступа к файлам.
ICACLS c:\Python26\lib\site-packages\*.egg /reset
Я предлагаю сначала попробовать это с одним файлом, прежде чем делать *.egg
.Обратите внимание , что *.egg
скорее всего, они также будут соответствовать папкам egg.