py2exe TypeError:强制转换为Unicode:需要字符串或缓冲区,找到NoneType

时间:2018-04-03 10:21:51

标签: py2exe fiona

尝试让py2exe为我编译一个使用fiona的脚本。

我使用的套餐:

import os
import fiona
import sys
from PyQt5.QtGui import QIcon
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import *

然后我在以下情况下结束以下错误:

D:/Temp/project/python setup.py py2exe

Traceback (most recent call last):
File "setup.py", line 9, in <module>
  "excludes": ['bz2']
File "C:\Anaconda\lib\distutils\core.py", line 151, in setup
  dist.run_commands()
File "C:\Anaconda\lib\distutils\dist.py", line 953, in run_commands
  self.run_command(cmd)
File "C:\Anaconda\lib\distutils\dist.py", line 972, in run_command
  cmd_obj.run()
File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 243, in run
  self._run()
  File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 296, in _run
 self.find_needed_modules(mf, required_files, required_modules)
File "C:\Anaconda\lib\site-packages\py2exe\build_exe.py", line 1333, in find_needed_modules
  os.path.walk(path, visit, packages)
File "C:\Anaconda\lib\ntpath.py", line 266, in walk
  names = os.listdir(top)
TypeError: coercing to Unicode: need string or buffer, NoneType found

干杯

1 个答案:

答案 0 :(得分:1)

您可以尝试使用PyInstaller作为替代方案。我试图使用py2exe但得到你得到的完全相同的错误。但后来我安装了PyInstaller(可以通过pip完成)并运行它并且它可以立即运行。注意删除您尝试使用py2exe时剩余的所有build / dist目录。

注意:我会将此作为评论发布,因为它不是直接答案,但我没有足够的代表。