Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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\U冻结不包括库中的所有模块_Python_Python 3.x_Cx Freeze - Fatal编程技术网

Python cx\U冻结不包括库中的所有模块

Python cx\U冻结不包括库中的所有模块,python,python-3.x,cx-freeze,Python,Python 3.x,Cx Freeze,因此,我尝试使用以下代码编译一个名为“File.py”的python脚本: from cx_Freeze import setup, Executable # Define packages needed(not builtin) packages = ['scipy' , 'numpy'] options = { 'build_exe': { 'packages': packages, }, }

因此,我尝试使用以下代码编译一个名为“File.py”的python脚本:

    from cx_Freeze import setup, Executable
    # Define packages needed(not builtin)
    packages = ['scipy' , 'numpy']
    options = {
        'build_exe': {
            'packages': packages,
        },
    }

    setup(name='Monitor',
          version = '0.8',
          description = 'Monitors stuff.',
          options = options,
          executables = [Executable("File.py")])

“File.py”只使用scipy和numpy,我已经将它们包含在packages变量中。但是,在编译并运行File.exe之后,我得到了错误:“ModuleNotFoundError:没有名为'scipy.spatial.ckdtree'的模块”。我正在使用Python3.6和cx_Freeze 6(支持Python3.6)。如何让cx\U Freeze包含所有必要的模块?

尝试给出库的实际地址。因此,请查找scipy和numpy文件的位置,并在包中包含以下内容:
r“C:\Users\yourname\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll”,
r“C:\Users\yourname\AppData\Local\Programs\Python36\DLLs\tk86t.dll”,

可能已经死了,但我会付出我的两分钱,因为多年来我在scipy与cx\u Freeze的结合中遇到了一些类似的问题。我很难找到关于这个问题的文档

首先,在运行File.exe时,在出现错误时检查对话框中的完整堆栈跟踪。ModuleNotFoundError是您的症状,但根本原因是试图加载模块的文件,通常是scipy中某个地方的_init__;.py文件


其次,转到该文件,并将正在加载的模块名与包名和别名进行比较。您正在查找模块名称或模块路径的差异。例如,我遇到的一个ckdtree加载问题是uu init_uuuy。py试图加载“ckdtree”,但分发版中的模块是“ckdtree”,或者在不应该有大写字母的地方有一个大写字母。在试图加载模块的文件中更改大小写可以解决问题。

这是针对tkinter的。我可不傻。但你的方法仍然正确。我只是用我以前用过的代码作为例子哦,好吧。我使用packages=['scipy'、'numpy',r“C:\Users\Owner\AppData\Local\Programs\Python\Python36\Lib\site packages\scipy\spatial\ckdtree.cp36-win\u amd64.pyd”]指定了模块的文件路径,不幸的是,它仍然找不到模块。