An error for generating an exe file using pyinstaller - typeerror: expected str, bytes or os.PathLike object, not NoneType

前端 未结 5 1599
逝去的感伤
逝去的感伤 2020-12-09 12:31

I am trying to build an .exe file from .py file using pysinstaller and Python 3.7.2.

It worked with Python 3.6; then I re-inst

5条回答
  •  情话喂你
    2020-12-09 12:58

    It may be from an ill-formed spec file, something as simple (yet difficult to find) as a commented or missing argument.

    When I comment out name in exe,

    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              # name='my_app',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True,
              icon='resources/icons/icon.ico',
              version='resources/version/version.py')
    

    I get the following traceback:

    146666 INFO: Building PYZ (ZlibArchive) c:\projects\my-env\app\qc\tools\my_app\build\my_app_old\PYZ-00.pyz completed successfully.
    Traceback (most recent call last):
      File "C:\Users\lorem\Anaconda3\envs\my-env\Scripts\pyinstaller-script.py", line 10, in 
        sys.exit(run())
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\site-packages\PyInstaller\__main__.py", line 114, in run
        run_build(pyi_config, spec_file, **vars(args))
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build
        PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\site-packages\PyInstaller\building\build_main.py", line 720, in main
        build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\site-packages\PyInstaller\building\build_main.py", line 667, in build
        exec(code, spec_namespace)
      File "my_app_old.spec", line 49, in 
        version='resources/version/version.py')
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\site-packages\PyInstaller\building\api.py", line 382, in __init__
        self.name = os.path.join(CONF['distpath'], os.path.basename(self.name))
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\ntpath.py", line 214, in basename
        return split(p)[1]
      File "C:\Users\lorem\Anaconda3\envs\my-env\lib\ntpath.py", line 183, in split
        p = os.fspath(p)
    TypeError: expected str, bytes or os.PathLike object, not NoneType
    

    The application builds when name is included.

提交回复
热议问题