Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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从.py文件创建exe时,netCDF4出错_Python_Pyinstaller_Cython_Netcdf4_Pvlib - Fatal编程技术网

Python 使用Pyinstaller从.py文件创建exe时,netCDF4出错

Python 使用Pyinstaller从.py文件创建exe时,netCDF4出错,python,pyinstaller,cython,netcdf4,pvlib,Python,Pyinstaller,Cython,Netcdf4,Pvlib,我用Jupyter制作了一个小程序,它使用以下库: import pandas as pd import datetime #import pvlib forecast models from pvlib.forecast import RAP 我在jupyter上制作了它,它运行得很好,但我想有一个.exe,它将在输出CSV的控制台上运行,非常简单。问题是: 当我将其转换为.py(它运行得非常好)时,我使用pyinstaller创建了一个.EXE,我可以在CMD上运行该.EXE并获取生成的

我用Jupyter制作了一个小程序,它使用以下库:

import pandas as pd
import datetime
 #import pvlib forecast models
from pvlib.forecast import RAP
我在jupyter上制作了它,它运行得很好,但我想有一个.exe,它将在输出CSV的控制台上运行,非常简单。问题是:

当我将其转换为.py(它运行得非常好)时,我使用pyinstaller创建了一个.EXE,我可以在CMD上运行该.EXE并获取生成的CSV文件,但是,我遇到以下错误:

File "solar_FX_py.py", line 15, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "c:\users...\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.dict)
File "pvlib\forecast.py", line 5, in
from netCDF4 import num2date
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in load_unlocked
File "c:\users...\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.dict)
File "netCDF4_init.py", line 3, in
File "include\membuf.pyx", line 16, in init netCDF4._netCDF4
AttributeError: type object 'netCDF4._netCDF4._MemBuf' has no attribute 'reduce_cython'
我花了很多天的时间试图解决这个问题,但没有成功,我使用(可选)forecast建议安装了pvlib,正如我所说,.py文件运行得很好,但当我创建.exe时,它没有

有办法解决这个问题吗?还是有更好的方法来创建独立的应用程序


谢谢

您是否尝试过另一个netcdf库?可能PyInstaller没有绑定到netcdf4所需的Cython编译库中。我没有PyInstaller的经验,但可能有一些线索?同样,您的错误看起来是这样的,因此尝试将共享Cython编译库传递给
pyinstaller
as。这些
reduce\u Cython
错误应该主要通过使用Cython的最新版本重新编译来修复。它们在一定程度上是循环导入(+例外?)的结果-也就是说,您可能从由membuf导入的东西导入了membuf,因此membuf没有完全初始化。其中一个导入可能位于try/catch块中。这是否回答了您的问题?谢谢大家的帮助!这是我第一次接触python,我对python不是很熟悉,不过我会尝试你的每一个建议,并在这里更新我的进度。我听说有人用cx\u freeze而不是pyinstaller,使用pyinstaller以外的东西会有帮助吗?有什么建议吗?谢谢