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