pip 安装包问题
问题描述:pip install 安装whl文件报错
错误信息:UnicodeEncodeError: 'utf-8' codec can't encode character '\udcba' in position 66: surrogates not allowed
错误原因:安装路径有中文
关键字: pip, install, whl
python, sqlalchemy, mysql插入数据问题
问题描述:使用pandas读取csv之后,将dataframe数据刷选完后,使用sqlalchemy存入数据库报错
错误信息:AttributeError: 'numpy.float64' object has no attribute 'translate'
错误原因:需要把numpy.float64转为float
关键字: sqlalchemy, mysql, pandas
python编译pyd, so后出现name '__file__' is not defined问题
问题描述:在常量量初始化时,使用了内置变量__file__。在py,pyc下没有问题,但是在编译成pyd,so后出现执行会出现name '__file__' is not defined的NameError
错误信息:NameError: name '__file__' is not defined
错误原因:__file__等一些内置变量在python中是在导入初始化开始生成的,但是在Cython中是在导入初始化完成时生成的。可以把常量初始化改为函数获取等延后加载的方式解决该问题。
例子:
# 该文件编译为so,pyd之后。在导入或者运行时会报错
import os
# 默认地址为当前文件的同级目录
DEFAULT_CONFIG_PATH = os.path.join(
# 由于加载时需要变量 __file__, 所以编译为so, pyd时报错
os.path.dirname(__file__), '.', 'general_config.yml'
)
def get_default_config_path():
return DEFAULT_CONFIG_PATH
更改为:
# 该文件编译为so,pyd之后。在导入或者运行时可以正常运行
import os
# 记录常量的字典
CONSTANT = {}
def get_default_config_path():
try:
# 尝试返回常量字典中的'DEFAULT_CONFIG_PATH'项
return CONSTANT['DEFAULT_CONFIG_PATH']
except KeyError:
# 如果发生KeyError则说明'DEFAULT_CONFIG_PATH'未初始化
# 此时__file__已经存在,将其初始化后返回
CONSTANT['DEFAULT_CONFIG_PATH'] = os.path.join(
os.path.dirname(__file__), '.', 'general_config.yml'
)
return CONSTANT['DEFAULT_CONFIG_PATH']
关键字: Python, Cython
python数字逗号分隔字符串
'{:,f}'.format(12345679.012) # '12,345,679.012000'