PyInstaller пытается поместить папку dist в C: \ Windows - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь упаковать свою программу Python с помощью PyInstaller. Когда я это делаю, я получаю эту ошибку:

Traceback (most recent call last):
  File "c:\python27\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>
  File "c:\python27\lib\site-packages\PyInstaller\__main__.py", line 114, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "c:\python27\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 734, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 636, in build
    os.makedirs(pth)
  File "c:\python27\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 5] Access is denied: 'C:\\Windows\\dist'

Когда я запускал его раньше, папка dist была помещена в текущий рабочий каталог (не в C: \ Windows) без проблем . Я не знаю, что изменилось, чтобы заставить его попытаться поместить его в C: \ Windows.

Вот мой файл spe c:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

datas = [("assets", "assets")]

a = Analysis(['foo_bar.py'],
             pathex=['Z:\\path\\to\\the\\script'],
             binaries=[],
             datas=datas,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='foo_bar',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )

Это команда, которую я использую для сборки: pyinstaller --onefile --noconfirm foo_bar.spec

...