精华内容
下载资源
问答
  • PyInstaller:解决scipy打包失败的问题

    千次阅读 2018-08-10 14:06:56
    测试环境:win10 + python3.6 ...打包后,运行出现如下错误时,是应为缺少extra-dll里面的文件。 File "venv\lib\site-packages\scipy\fftpack\basic.py", line 12, in <module> File "C:\Users\..\venv\lib...

    测试环境:win10 + python3.6 64位 + PyInstaller3.3.1
    打包后,运行出现如下错误时,是应为缺少extra-dll里面的文件。

      File "venv\lib\site-packages\scipy\fftpack\basic.py", line 12, in <module>
      File "C:\Users\..\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
        module = loader.load_module(fullname)
    ImportError: DLL load failed: 找不到指定的模块。
    

    在PyInstaller脚本里添加以下内容即可。

    --add-binary', './venv/lib/site-packages/scipy/extra-dll/*;.'
    

    最终打包脚本如下所示:

    from PyInstaller.__main__ import run
    
    if __name__ == '__main__':
        opts = ['-c',
                '--add-data', 'test.db;.',
                '--add-data', 'test.ini;.',
                '--add-data', 'test.ico;.',
                '--icon', 'test.ico',
                '--add-binary', './venv/lib/site-packages/scipy/extra-dll/*;.',
    
                '--hidden-import', 'PyQt5.QtSerialPort',
                '--hidden-import', 'PyQt5.QtChart',
                '--hidden-import', 'PyQt5.sip',
                '--hidden-import', 'ctypes.wintypes',
                '--hidden-import', 'win32con',
                '--hidden-import', 'sqlalchemy',
                '--hidden-import', 'sqlalchemy.orm',
                '--hidden-import', 'logging.handlers',
                '--hidden-import', 'scipy._lib.messagestream',
    
                '-y', '--noupx', '--clean',
                'test.py']
    
        run(opts)
    
    
    展开全文
  • 最近写了个小程序,用PyQt...后来由于需要,调用SciPy.io.loadmat,改写setup.py,打包之后运行错误,提示: Traceback (most recent call last): File "comtrade.py", line 7, in <module> File "C:\A...

    最近写了个小程序,用PyQt5做的界面,写完之后用py2exe打包成独立的exe文件,运行正常。

    后来由于需要,调用SciPy.io.loadmat,改写setup.py,打包之后运行错误,提示:

    Traceback (most recent call last):
      File "comtrade.py", line 7, in <module>
      File "C:\Anaconda3\lib\site-packages\scipy\io\__init__.py", line 85, in <module>
        from .matlab import loadmat, savemat, whosmat, byteordercodes
      File "C:\Anaconda3\lib\site-packages\scipy\io\matlab\__init__.py", line 13, in <module>
        from .mio import loadmat, savemat, whosmat
      File "C:\Anaconda3\lib\site-packages\scipy\io\matlab\mio.py", line 12, in <module>
        from .miobase import get_matfile_version, docfiller
      File "C:\Anaconda3\lib\site-packages\scipy\io\matlab\miobase.py", line 22, in <module>
        from scipy.misc import doccer
      File "C:\Anaconda3\lib\site-packages\scipy\misc\__init__.py", line 47, in <module>
        from scipy.special import comb, factorial, factorial2, factorialk
      File "C:\Anaconda3\lib\site-packages\scipy\special\__init__.py", line 586, in <module>
        from ._ufuncs import *
      File "<loader>", line 10, in <module>
      File "<loader>", line 8, in __load
    ImportError: (No module named 'scipy.special._ufuncs_cxx') 'D:\\work\\comtrade\\dist\\scipy.special._ufuncs.pyd'

    可是找了下 \Anaconda3\Lib\site-packages\scipy\special里面,是有_ufuncs_cxx.pyd的,

    也就是说py2exe在打包的时候没有把'scipy.special._ufuncs_cxx'打进来,需要在"includes" 里面加进去。

    这个加进来之后,运行仍然会提示 (No module named "scipy.integrate")等,缺什么就一并"includes" 进来。

    1 "includes" : [  'scipy.special._ufuncs_cxx',
    2                      "scipy.integrate",
    3                      "scipy.integrate.quadpack",
    4                      "scipy.sparse.csgraph._validation"],

    最终setup.py如下:

     1 # -*- coding: utf-8 -*-
     2 #py2exe:setup.py
     3 
     4 from distutils.core import setup
     5 import py2exe
     6 #We need to import the glob module to search for all files.
     7 import glob
     8 import sys
    13 #this allows to run it with a simple double click.
    14 sys.argv.append('py2exe')
    15 
    16 # We need to exclude matplotlib backends not being used by this executable. You may find
    17 # that you need different excludes to create a working executable withyour chosen backend.
    18 # We also need to include include various numerix libraries that the other functions call.
    19 opts= {
    20 'py2exe':{ "includes" : [ "sip", "matplotlib.backends", "matplotlib.backends.backend_tkagg",
    21                           "matplotlib.figure","numpy", "matplotlib.pyplot", "pylab", "six",
    22                           "matplotlib.backend_bases", 'scipy.special._ufuncs_cxx',
    23                           "scipy.integrate","scipy.integrate.quadpack","scipy.sparse.csgraph._validation"],
    24            "excludes" : ['_gtkagg', '_tkagg', '_agg2', '_cairo', '_cocoaagg',
    25                          '_fltkagg','_gtk', '_gtkcairo'],
    26 
    27           "dll_excludes":['libgdk-win32-2.0-0.dll','libgobject-2.0-0.dll',"MSVCP90.dll",]
    28          }
    29       }
    30 
    31 #Save matplotlib-data to mpl-data ( It is located in thematplotlib\mpl-data
    32 #folder and the compiled programs will look for it in \mpl-data
    33 #note: using matplotlib.get_mpldata_info
    34 data_files= [(r'mpl-data',glob.glob(r'C:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\*.*')),
    35             #Because matplotlibrc does not have an extension, glob does not findit (at least I think that's why)
    36             #So add it manually here:
    37             (r'mpl-data',[r'C:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
    38             (r'mpl-data\images',glob.glob(r'C:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
    39             (r'mpl-data\stylelib',glob.glob(r'C:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\stylelib\*.*')),
    40             (r'mpl-data\fonts',glob.glob(r'C:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\*.*')),
    41             ("",[r"C:\Anaconda3\Lib\site-packages\PyQt5\libEGL.dll"]),
    42             ("platforms",[r"C:\Anaconda3\Lib\site-packages\PyQt5\plugins\platforms\qwindows.dll"])]
    43 
    44 #for console program use 'console = [{"script" :"comtrade.py"}]
    45 setup(
    46     #console = [{"script" : 'comtrade.py'}], 
    47     name = 'comtrade',
    48     version = '1.0',
    49     windows = [{"script":"comtrade.py", "icon_resources": [(1, "logo.ico")]} ],
    50     options=opts, data_files=data_files)

    运行时仍然出错,提示(No module named "linalg"),找来找去也没找到 linalg.pyd这个文件,只好把有 import linalg的地方删掉,运行ok。

     

    转载于:https://www.cnblogs.com/cxt212/p/5089712.html

    展开全文
  • 找了一堆方案,都没work 最后将scipy降到1.3.1,报matplotlib failed to import any qt binding 又将matplotlib降到2.2.2 成功打包

    找了一堆方案,都没work

    最后将scipy降到1.3.1,报matplotlib failed to import any qt binding

    又将matplotlib降到2.2.2

    成功打包

    展开全文
  • Scipy 练习

    2018-06-04 23:52:22
    这道题要求使用最小二乘法找到这个x并且输出残差的范数,程序如下:import scipy from scipy import linalg from scipy.optimize import leastsq A = scipy.random.normal(size=[30, 20]) b = scipy.random.normal...

    这道题要求使用最小二乘法找到这个x并且输出残差的范数,程序如下:

    import scipy
    from scipy import linalg
    from scipy.optimize import leastsq
    
    A = scipy.random.normal(size=[30, 20])
    b = scipy.random.normal(size=[30])
    
    
    def error(x, A, b):
        return scipy.matmul(A, x) - b
    
    
    #产生x的初始值
    x = scipy.random.normal(size=[20])
    
    # 把error函数中除了x以外的参数打包到args中(使用要求)
    Para = leastsq(error, x, args=(A, b))
    
    #求解出x
    x = Para[0]
    print(linalg.norm(scipy.matmul(A, x) - b))

    思路解析:先用scipy自带的random库生成向量和矩阵还有x的初始解,最后定义损失函数error,然后使用leastsq函数求出相应的解

    scipy.optimize.leastsq(func, x0, args=(), Dfun=None, full_output=0, col_deriv=0, ftol=1.49012e-08, xtol=1.49012e-08, gtol=0.0, maxfev=0, epsfcn=None, factor=100, diag=None)
    在leastsq函数原型中,func是自定义的损失函数,但要注意leastsq这个函数是
    min  sum((ydata - f(xdata, params))**2, axis=0)

    所以在func中不需要平方和求和,leastsq函数自己会进行计算

    X0是解的初始值,args是指定函数(func)的其他参数

    运行截图:





    第二题是找这个函数的最大值

    from scipy.optimize import basinhopping
    import scipy
    
    func = lambda x: -scipy.power(scipy.sin(x[0]-2), 2)*scipy.power(scipy.e, -x[0]**2)
    x0=[1.]
    minimizer_kwargs = {"method": "BFGS"}
    ret = basinhopping(func, x0, minimizer_kwargs=minimizer_kwargs,
                        niter=200)
    print("global minimum: x = %.4f, f(x0) = %.4f" % (ret.x, ret.fun))

    这里我选用的是optimize里的basinhopping函数,为了求sin2(x2)ex2最大值相当于求

    sin2(x2)ex2

    的最小值  


     最后报出ComplexWarning是在将复数转换为实数时丢弃了虚部导致


    basinhopping 函数可以求一个函数的全局最小值,通过使用basin-hopping 算法。

    scipy.optimize.basinhopping(func, x0, niter=100, T=1.0, stepsize=0.5, minimizer_kwargs=None, take_step=None, accept_test=None, callback=None, interval=50, disp=False, niter_success=None, seed=None

    里面的func参数即为需要确定最小值的函数,x0是初始解,niter是basin-hopping算法的迭代次数

    minimizer_kwargs包括了用来求解局部最小值所用到的算法等



    第三题是求两两之间的距离

    import scipy
    from scipy.spatial.distance import cdist
    from scipy import linalg
    
    x = scipy.random.normal(size=[20, 20])*10 + scipy.random.randint(-10, 10)
    distance = cdist(x, x, metric='Euclidean')
    
    for i in range(20):
        for j in range(20):
            distance_ij = linalg.norm(x[i]-x[j], 2)
            if abs(distance_ij - distance[i][j]) > 1e-4:
                print('wrong')

    这里我使用了python的cdist函数,这个函数计算第一个参数的每一行到第二个参数的每一行的距离,第三个参数是度量,常见的距离有欧几里得距离、马氏距离等

    distance[i][j]即是第一个参数的第i行到第二个参数的第j行的距离

    最后写了一个循环确定结果没错



     

    展开全文
  • 开看了好多国内国外的解决办法,最终还是自己分析原因 通过升级 pyinstaller 从根本上解决了此问题,虽然解决方法很简单,但重要的是背后的原理...#根本上解决# 使用 Pyinstaller 打包后 出现 lib not found 错误 ...
  • 一、打包程序库选择 py2exe. 不支持python3 cx_Freeze. 现在只更新到python3.3 pyinstaller. 支持python2、python3所有版本 因为现在使用的版本是python3.6,所以没得选择,只能使用pyinstaller。...
  • pyinstaller+scipy

    千次阅读 2017-12-07 14:34:18
    最近由于工作需要将PyQt5写的程序打包成exe文件,开始使用的cx_freeze的工具进行打包...这是因为项目中用来scipy这个库,pyinstaller没有支持这个库,于是就是用选项–hidden-import=scipy 将其打包,又发现1.0.0的版本
  • 从外网下载文件太久,打包了一些whl库供大家便捷使用~
  • 把需要的包汇总到了一起,方便快捷! 解压后有setup.py需要进入该目录执行python setup.py install进行安装!
  • Scipy基础

    2018-07-04 13:41:06
    #方法2 独立封装打包 def createScore(arr): score = [] #所有学员分数 row = arr.shape[ 0 ] for i in np.arange( 0 ,row): for j in np.arange( 0 ,int(arr[i][ 1 ])): score.append(arr[i][ 1 ])...
  • scipy基础—io

    千次阅读 2019-06-30 16:41:37
    scipy是构建在numpy的基础之上的,它提供了许多的操作numpy的数组的函数。scipy.io包提供了多种功能来解决不同格式的文件的输入和输出。 举个例子: import numpy as np import scipy.io as io if __name__ == '__...
  • 这个是因为打包后的第三方库中缺少了pyd文件 具体的解决方法: 去环境下找到相应的py文件,根据https://blog.csdn.net/qq_41007606/article/details/109565069文章写的方法,将py编译成pyd文件,然后将pyd文件复制...
  • Python中的Numpy、SciPy、MatPlotLib安装与配置
  • scipy中的稀疏矩阵

    2021-04-13 18:50:35
    本文主要围绕scipy中的稀疏矩阵展开,也会介绍几种scipy之外的稀疏矩阵的存储方式。 dok_matrix 继承自dict,key是(row,col)构成的二元组,value是非0元素。 优点: 非常高效地添加、删除、查找元素 转换成coo_...
  • SciPy 2018的软件工程技术 7月9日,星期一,下午1:30 作为诸如NumPy,Pandas和matplotlib之类的科学Python库的用户,值得一问的是,当存在大型代码库,许多功能和许多贡献者时,这些库的维护者如何设法使代码库快速...
  • windows下python安装scipy库的方法

    千次阅读 2017-01-12 09:21:03
    在windows下使用pip install scipy 安装scipy 库的时候,或者使用pycharm安装的时候同样如此,找了很多资料,本文给出解决方法:1. 下载两个包这两个包在http://www.lfd.uci.edu/~gohlke/pythonlibs/ 中, 下载的两...
  • 新版 MaxCompute Isolation Session 支持 ...刚才以 Scipy 为例踩了一下坑,把相关的过程分享出来。 下载 Scipy 包并上传资源 首先,从 PyPI 或其他镜像下载 Scipy 包。你需要下载后缀为“cp27-cp27m-manylinux1_x8...
  • scipy == 1.1.0 python == 3.5.2 pyinstaller == 3.3.1 最近使用pyinstaller打包tensorflow训练好的预测模块,编译完成后,运行可执行文件,出现一下错误: lixin@lixin-OptiPlex-3020:/med...
  • scipy-optimize 拟合曲线

    2019-05-03 13:24:57
    这个拟合曲线是真正意义的运用最下二乘法进行拟合的,先算出来拟合直线k和b,在画图。...from scipy.optimize import leastsq ###采样点(Xi,Yi)### Xi=np.array([8.19,2.72,6.39,8.71,4.7,2.66...
  • 机器学习中最小二乘法可以理解为就是通过最小化误差的平方和来寻找最佳的匹配函数。一般常用于曲线的拟合。 关于曲线的拟合,就是求出最佳的k,b的值来找出好的曲线实现好的分类效果。...那就是scipy.optimize包里面...
  • Ubuntu系统下为Python安装Scipy模块

    千次阅读 2017-06-20 16:46:44
    本文摘自Scipy官网: 对应大多数用户,尤其是Window用户而言,最简单的安装Scipy的方式...这些版本的Python中都已经打包好了常用的科学计算模块。 如果用户使用的是原生的Python,默认并没有包含Scipy模块。另行安装时
  • from scipy.optimize import leastsq #from scipy.integrate import quad,dblquad,nquad import math import xlrd import matplotlib as mat mat.use("TkAgg") import matplotlib.pyplot as plt ...
  • 【机器学习01】scipy

    2018-07-10 10:29:02
    安装是可以安装的,安装好了在2015vs中无法导入scipy库,我安装的python是3.6.2版本的,然后我就换了一种导入库方式,直接下载了python(x,y),选择了vs2015打包好的库文件,在vs中就可以显示了 ...
  • >>>此文仅作个人提醒记录。   注意事项:  (1)Numpy,Scipy安装之前安装运行环境Micro ... (2)Numpy要在scipy之前安装,否则scipy不能安装。安装最好是PNump-Scipy-Matplotlib-Ipython  (3)模块文件有不同

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,075
精华内容 1,230
关键字:

scipy打包