Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 pyinstaller 3.3.1没有';t使用openpyxl 2.4.1_Python_Pyinstaller - Fatal编程技术网

Python pyinstaller 3.3.1没有';t使用openpyxl 2.4.1

Python pyinstaller 3.3.1没有';t使用openpyxl 2.4.1,python,pyinstaller,Python,Pyinstaller,我有一个大型程序,我正试图用pyinstaller打包,发现问题出在openpyxl包上 以下是一个最简单的程序: import openpyxl print("Hello World") 下面是我用来运行pyinstaller的命令: $ pyinstaller --onefile demo2.py 以下是输出: $ pyinstaller --onefile demo2.py 461 INFO: PyInstaller: 3.3.1 461 INFO: Python: 3.6.0 470

我有一个大型程序,我正试图用pyinstaller打包,发现问题出在
openpyxl
包上

以下是一个最简单的程序:

import openpyxl
print("Hello World")
下面是我用来运行pyinstaller的命令:

$ pyinstaller --onefile demo2.py
以下是输出:

$ pyinstaller --onefile demo2.py
461 INFO: PyInstaller: 3.3.1
461 INFO: Python: 3.6.0
470 INFO: Platform: Darwin-18.0.0-x86_64-i386-64bit
471 INFO: wrote /Users/user/gits/drb_rounder/python/demo2.spec
475 INFO: UPX is not available.
476 INFO: Extending PYTHONPATH with paths
['/Users/user/gits/drb_rounder/python',
 '/Users/user/gits/drb_rounder/python']
476 INFO: checking Analysis
579 INFO: Building because /Users/user/gits/drb_rounder/python/demo2.py changed
579 INFO: Initializing module dependency graph...
585 INFO: Initializing module graph hooks...
587 INFO: Analyzing base_library.zip ...
4887 INFO: running Analysis out00-Analysis.toc
4898 INFO: Caching module hooks...
4902 INFO: Analyzing /Users/user/gits/drb_rounder/python/demo2.py
6692 INFO: Processing pre-find module path hook   distutils
10268 INFO: Processing pre-find module path hook   site
10269 INFO: site: retargeting to fake-dir '/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/fake-modules'
10296 INFO: Processing pre-safe import module hook   win32com
12225 INFO: Processing pre-safe import module hook   six.moves
23816 INFO: Processing pre-safe import module hook   

requests.packages.urllib3.packages.six.moves
    Traceback (most recent call last):
      File "/Users/user/anaconda3/bin/pyinstaller", line 11, in <module>
        sys.exit(run())
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/__main__.py", line 94, in run
        run_build(pyi_config, spec_file, **vars(args))
...
packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1576, in _find_head_package
        target_module_headname, target_package_name, source_package)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/depend/analysis.py", line 271, in _safe_import_module
        module_basename, module_name, parent_package)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1993, in _safe_import_module
        module_name, file_handle, pathname, metadata)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 2031, in _load_module
        m = self._load_package(fqname, pathname, packagepath)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 2789, in _load_package
        ns_pkgpath = _namespace_package_path(fqname, pkgpath or [], self.path)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 147, in _namespace_package_path
        working_set = pkg_resources.WorkingSet(path)
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 644, in __init__
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 700, in add_entry
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 1990, in find_on_path
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2399, in from_location
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2378, in __init__
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 1387, in safe_version
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/_vendor/packaging/version.py", line 207, in __init__
      File "/Users/user/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/_vendor/packaging/version.py", line 207, in <genexpr>
    RecursionError: maximum recursion depth exceeded while calling a Python object
   $
$pyinstaller--onefile demo2.py
461信息:PyInstaller:3.3.1
461信息:Python:3.6.0
470信息:平台:Darwin-18.0.0-x86_64-i386-64位
471信息:writed/Users/user/gits/drb_rounder/python/demo2.spec
475信息:UPX不可用。
476信息:使用路径扩展PYTHONPATH
['/Users/user/gits/drb_rounder/python',
'/Users/user/gits/drb_rounder/python']
476信息:检查分析
579信息:由于/Users/user/gits/drb_rounder/python/demo2.py更改而生成
579信息:正在初始化模块依赖关系图。。。
585信息:正在初始化模块图挂钩。。。
587信息:正在分析base_library.zip。。。
4887信息:运行分析out00-Analysis.toc
4898信息:缓存模块挂钩。。。
4902信息:analysis/Users/user/gits/drb_rounder/python/demo2.py
6692信息:处理预查找模块路径挂钩区
10268信息:正在处理预查找模块路径挂钩站点
10269信息:站点:重新定位到伪目录“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/fake modules”
10296信息:正在处理预安全导入模块挂钩win32com
12225信息:正在处理预安全导入模块hook six.moves
23816信息:正在处理预安全导入模块挂钩
requests.packages.urllib3.packages.six.moves
回溯(最近一次呼叫最后一次):
文件“/Users/user/anaconda3/bin/pyinstaller”,第11行,在
sys.exit(run())
文件“/Users/user/anaconda3/lib/python3.6/site-packages/PyInstaller/__-main.py”,第94行,正在运行
运行构建(pyi\u配置,规范文件,**vars(args))
...
packages/PyInstaller/lib/modulegraph/modulegraph.py”,第1576行,在“查找”包中
目标\模块\头名、目标\包\名、源\包)
文件“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/depend/analysis.py”,第271行,在“安全导入”模块中
模块\基本名称、模块\名称、父\包)
文件“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/lib/modulegraph/modulegraph.py”,第1993行,在“安全导入”模块中
模块名称、文件句柄、路径名、元数据)
文件“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/lib/modulegraph/modulegraph.py”,第2031行,在加载模块中
m=self.\u加载\u包(fqname、路径名、packagepath)
文件“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/lib/modulegraph/modulegraph.py”,第2789行,在加载包中
ns_pkgpath=_命名空间_包_路径(fqname,pkgpath或[],self.path)
文件“/Users/user/anaconda3/lib/python3.6/site packages/PyInstaller/lib/modulegraph/modulegraph.py”,第147行,在_namespace_package_路径中
工作集=打包资源。工作集(路径)
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py”,第644行,在_init中__
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py”,第700行,在add_条目中
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__;.py”,第1990行,位于查找路径中
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py”,第2399行,位于from_位置
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py”,第2378行,在__init中__
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py”,第1387行,安全版
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg\u resources/\u vendor/packaging/version.py”,第207行,在__
文件“/Users/user/anaconda3/lib/python3.6/site packages/setuptools-27.2.0-py3.6.egg/pkg_resources/_vendor/packaging/version.py”,第207行,在
RecursionError:调用Python对象时超出了最大递归深度
$

在我看来,openpyxl不喜欢编译它: 当编译与您相同的代码时,我得到:

json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)


但是,还有其他一些用于读取excel文件的模块,如
pyexcel
(我还没有尝试过)

另一个非常简单的解决方案是使用“xlrd”包而不是“openpyxl”。这对我来说非常有效