Pyinstaller PermissionError: [Errno 13] разница между venv и обычным в PyCharm? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть 2 отдельных проекта, которые я создал в PyCharmCE2018.3.
Первый проект:

  • настройка без вентиляции
  • его пакеты, установленные с pip, находятся в Program Files\Python\Python37\Lib\site-packages, который доступен только для чтения
  • успешно преобразован в .exe с помощью PyInstaller. Все зависимости были найдены и доступны для анализатором PyInstaller без необходимости добавлять пути к .spec (https://pythonhosted.org/PyInstaller/when-things-go-wrong.html)

Второй проект:

  • настроено с venv
  • его пакеты, установленные с помощью pip, находятся в 'projectroot \ venv \ Lib \ site-packages', который доступен только для чтения
  • Анализатор PyInstaller не находит автоматически импортированные модули по пути по умолчанию и заполняет список отсутствующих модулей в projectroot\build\warn-projectname
  • добавление projectroot\venv\Lib\site-packages в качестве другого пути в .spec заставляет PyInstaller корректно выглядеть там, но затем встречает PermissionError:

    PermissionError: [Errno 13] Permission denied: '\\projectroot\\venv\\Lib\\site-packages'

(Извините, возникли проблемы с форматированием вывода, поэтому я просто поместил последнюю строку. Она очень похожа на эту: Ошибка разрешения при попытке использовать PyInstaller )

  • Я скопировал \site-packages вне Projectroot и добавил путь к .spec. Снова обнаружена ошибка PermissionError для этого нового местоположения.

Есть ли что-то особенное в venv, которое вызывает эту другую реакцию? Может быть, что-то еще не на моем радаре? Спасибо за совет; Я чувствую себя немного расстроенным в данный момент.

3/19/19 РЕДАКТИРОВАТЬ: В итоге я удалил PyCharm и интерпретатор Python и сделал новую установку. При повторной настройке окружения я выбрал venv и использовал все предложения по умолчанию. Затем я создал новый проект, поместил свой сценарий в эту среду и использовал pip для установки самых последних версий всех моих зависимостей. Все работало ... за исключением setuptools. По предложению какого-то другого поста (я уже забыл, где это было) я проверил, какая версия setuptools работала в системной среде. Это было устаревшим, и я обновил его. И вот, все тогда работало как шарм (каламбур). Этот другой пост утверждал, что изоляция venv не всегда была полной, и я, возможно, наткнулся на связанную с этим проблему. В любом случае, setuptools не имел отношения к исходной проблеме, и я подозреваю, что у меня были ошибки пути, которые были сброшены при новой установке.

...