sunyy 发布的文章

Nginx 限制文件上传大小,相应配置参数:client_max_body_size

注意:该参数在nginx.conf中默认是没有配置的,不配置的情况下,nginx默认限制请求附件大小为:1M。

处理方式:

找到nginx的配置文件nginx/conf/nginx.conf,在location块中,添加如下参数配置:

client_max_body_size 10m; # 改为你需要的大小

三者设置的区别在于,作用域不同:
--- 设置到http{}内,控制全局nginx所有请求报文(附件)大小;
--- 设置到server{}内,控制该server的所有请求报文(附件)大小;
--- 设置到location{}内,只控制满足该路由规则的请求报文(附件)大小。

1.无法打包依赖了requests模块的应用(ImportError: No module named 'requests')
pyinstaller -F --hidden-import=requests script.py

2.oss2安装之后打包无法运行,提示缺少文件
修改spec文件,添加外部文件

如下图,在Analysis部分的datas中添加外部文件路径和打包的路径,如:

('/usr/local/bin/python3.5/site-packages/aliyunsdkcore/data/','aliyunsdkcore/data/')

前面是源文件路径(可用相对路径,也可以用绝对路径),后面是打包后的路径

OSError:Cannot load native module 'Crypto.Cipher._raw_ecb':Trying '_raw_ecb.cp36-win_amd64.pyd':cannot load library 'C:UsersadminAppDataLocalTemp_MEI160382CryptoUtil..Cipher_raw_ecb.cp36-win_amb64.pyd'是在使用pyinstaller常出现的问题,现已解决,我出现这个问题是因为python通过pip3 install pyinstaller没有重定位Crypto的钩子

解决方法:

1.在github给出的解决方案中拷贝相关代码,在本地新建一个叫 hook-Crypto.py 的文件,并把拷贝的代码保存进改文件中

   github解决方案网址:https://raw.githubusercontent.com/pyinstaller/pyinstaller/develop/PyInstaller/hooks/hook-Crypto.py

   里面的相关代码:hook-Crypto.py
import os

import glob

from PyInstaller.compat import EXTENSION_SUFFIXES
from PyInstaller.utils.hooks import get_module_file_attribute

binaries = []
binary_module_names = [

'Crypto.Math',      # First in the list
'Crypto.Cipher',
'Crypto.Util',
'Crypto.Hash',
'Crypto.Protocol',

]

try:

for module_name in binary_module_names:
    m_dir = os.path.dirname(get_module_file_attribute(module_name))
    for ext in EXTENSION_SUFFIXES:
        module_bin = glob.glob(os.path.join(m_dir, '_*%s' % ext))
        for f in module_bin:
            binaries.append((f, module_name.replace('.', os.sep)))

except ImportError:

# Do nothing for PyCrypto (Crypto.Math does not exist there)
pass

2.然后把该钩子放入你的python的库文件中,通常为:~python3.63Libsite-packagesPyInstallerhooks中

3.重启该cmd即可