Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python cx_冻结和networkx的问题_Python_Cx Freeze - Fatal编程技术网

Python cx_冻结和networkx的问题

Python cx_冻结和networkx的问题,python,cx-freeze,Python,Cx Freeze,我在Windows上使用64位python 2.7。当我用cx\u Freeze构建一个可执行文件并运行它时,我会得到一个错误窗口(,替换实名): --------------------------- cx_冻结:主脚本中出现Python错误 --------------------------- 回溯(最近一次呼叫最后一次): 文件“C:\Python27\lib\site packages\cx\u Freeze\initscripts\Console.py”,第27行,在 执行官(代码、

我在Windows上使用64位python 2.7。当我用cx\u Freeze构建一个可执行文件并运行它时,我会得到一个错误窗口(,替换实名):

---------------------------
cx_冻结:主脚本中出现Python错误
---------------------------
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\cx\u Freeze\initscripts\Console.py”,第27行,在
执行官(代码、指令)
文件“ui.py”,第8行,在
文件“C:\Users\\.py”,第3行,在
将networkx导入为nx
文件“C:\Python27\lib\site packages\networkx\\uuuu init\uuuuuu.py”,第87行,在
导入networkx.readwrite
文件“C:\Python27\lib\site packages\networkx\readwrite\\uuuu init\uuuuu.py”,第14行,在
从networkx.readwrite.gml导入*
文件“C:\Python27\lib\site packages\networkx\readwrite\gml.py”,第46行,在
从lib2to3.refactor导入重构工具
文件“C:\Python27\lib\lib2to3\refactor.py”,第27行,在
从.fixer\u util导入查找根
文件“C:\Python27\lib\lib2to3\fixer\u util.py”,第9行,在
从.pygram导入python_符号作为符号
文件“C:\Python27\lib\lib2to3\pygram.py”,第32行,在
python\u grammar=driver.load\u grammar(\u grammar\u文件)
加载语法中的文件“C:\Python27\lib\lib2to3\pgen2\driver.py”,第121行
g=生成语法(gt)
文件“C:\Python27\lib\lib2to3\pgen2\pgen.py”,第385行,在generate\u语法中
p=ParserGenerator(文件名)
文件“C:\Python27\lib\lib2to3\pgen2\pgen.py”,第15行,在\uu init中__
流=打开(文件名)
IOError:[Errno 2]没有这样的文件或目录:“C:\\Users\\\\build\\exe.win-amd64-2.7\\library.zip\\lib2to3\\Grammar.txt”
---------------------------
好啊
---------------------------
该文件不在归档文件中,但如果在生成后手动添加,仍然找不到它。看起来像是路径(反斜杠?)问题

有人知道怎么解决这个问题吗


另外:您认为pyinstaller可以更好地解决此类问题吗?我选择cx_Freeze的原因是pyinstaller本身的安装似乎非常重要,而cx_Freeze是一个单独的whl。

我在使用Py2exe时也遇到了同样的问题

我发现问题是由NetworkX 1.10版引起的

回到1.9.1对我来说很有用:

pip uninstall networkx
pip install networkx==1.9.1

我不得不面对同样的问题,但无法回滚到networkx 1.9.1

我通过从设置中排除lib2to3并使用“includefles”将其包含回来解决了这个问题:

#-*-编码:cp1252-*-
导入myproj
从os.path导入目录名
从cx\U冻结导入设置,可执行文件
gui=可执行文件(
script=“myproj/gui.py”,
base=“Win32Gui”,
targetName=“myproj.exe”,
icon=“logo.ico”,
)
软件包=[]
includebles=[]
包括=[]
排除=['tkinter','lib2to3']
进口lib2to3
lib23\u path=dirname(lib2to3.\u文件\u)
includefibles.append(lib23_路径)
设置(
名称='myproj',
version=myproj.version,
作者‘我自己’,
许可证=“…”,
选项={'build_exe':{
“包”:包,
“包含文件”:包含文件,
“包括”:包括,
“排除”:排除,
}},
可执行文件=[gui],
)

最简单的解决方案。谢谢
pip uninstall networkx
pip install networkx==1.9.1