У меня есть 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 не имел отношения к исходной проблеме, и я подозреваю, что у меня были ошибки пути, которые были сброшены при новой установке.