Я пытаюсь создать исполняемый файл для относительно большого python проекта, который использует много импорта. Я активирую виртуальную среду и настраиваю devpi на использование указанного c Pypi-сервера (с необходимым импортом) и запускаю pip install needs.txt. Часть моего require.txt выглядит следующим образом:
bitstruct>=6.0.0
canmatrix==0.8.*
certifi>=2019.3.9
chardet>=3.0.4
check-manifest>=0.37
deepdiff>=4.0.2
devpi-client>=4.3.0
devpi-common>=3.3.1
filelock>=3.0.10
python-can[neovi]>=3.0.0
python-ics==3.2.*
virtualenv>=16.4.3
vsa==1.13.1
При запуске pyinstaller и без изменения файла spe c созданный исполняемый файл exe работает до тех пор, пока не попытается загрузить указанный c import с именем vsa (который является локальным для сервера pypi) и завершает выполнение без сообщения об ошибке. В идеале должен появиться GUI, указывающий на ошибку при загрузке импорта.
Я попытался создать путь в файле spe c, чтобы найти библиотеку в папке виртуальной среды. My Spe c Файл выглядит так:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['cli.py'],
pathex=['C:\\Users\\VPAUL8\\Pictures\\vfs\\vfs\\venv\\Lib\\site-packages\\vsa', 'C:\\Users\\VPAUL8\\Pictures\\vfs\\vfs\\venv\\Lib\\site-packages\\can','C:\\Users\\VPAUL8\\Pictures\\vfs\\vfs\\venv\\Lib\\site-packages','C:\\Users\\VPAUL8\\Pictures\\vfs\\vfs\\vfs'],
binaries=[],
datas=[],
hiddenimports=['canmatrix'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
, когда я запускаю pyinstaller с этим файлом Spe c, я получаю кучу ошибок импорта и встроенных ошибок, таких как: 80 INFO: Анализ base_library.zip ... Неустранимая Python ошибка: init_sys_streams: не удается инициализировать стандартные потоки sys Трассировка (последний последний вызов): файл "C: \ Users \ VPAUL8 \ Pictures \ vfs \ vfs \ venv \ Lib \ site-packages \ can \ io__init __. py ", строка 11, в файле" C: \ Users \ VPAUL8 \ Pictures \ vfs \ vfs \ venv \ Lib \ site-packages \ can \ io \ logger.py ", строка 9, в Файл "C: \ Users \ VPAUL8 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ logging__init __. Py", строка 26, в файле "C: \ Users \ VPAUL8 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ traceback.py ", строка 5, в файле" C: \ Users \ VPAUL8 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ linecache.py ", строка 11, в файле" C: \ Users \ VPAUL8 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ tokenize.py ", строка 27, в ImportError: невозможно импортировать имя 'open' из 'builtins' (неизвестное местоположение)
Мой вопрос, это одобрение Как добавить библиотеку виртуальной среды Path в файл Spe c, верно? Если это так, я, кажется, получаю много ошибок сборки и импорта, можно ли что-то сделать, чтобы их исправить. Если нет, существует ли альтернативный подход для включения этих импортов, которые доступны только на частном сервере Pypi.