编译pqxx源码configure时遇到codecs.py LookupError的解决方法

之前第一次编译的时候没有出现问题,第二次重新编译时./configure报错:

 File "/usr/lib/python2.7/posixpath.py", line 73, in join
    path += ‘/‘ + b
UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe4 in position 13: ordinal not in range(128)

查知可在报错的文件/usr/lib/python/posixpath.py中添加语句

import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)

解决;

但configure时再次出现类似报错

File "/usr/lib/python2.7/codecs.py", line 896, in open
    file = __builtin__.open(filename, mode, buffering)
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 13-14: ordinal not in range(128)

在/usr/lib/python2.7/codecs.py中添加上述setdefaultencoding(‘utf-8‘)语句,configure时出现另一种报错:

File "/usr/lib/python2.7/codecs.py", line 13, in <module>
    sys.setdefaultencoding(‘utf-8‘)
LookupError: no codec search functions registered: can‘t find encoding

所以,这样搞下去没完没了,是不行的啦……

由于有之前(敢于作死)的经验,我知道将系统的默认python版本从原来的2.7链接到3.0就可以解决这个问题。具体操作可参考这篇文章:Linux升级Python至3.x

但我还有一些补充:

1. 如果/usr/bin下已有python3.x的话,建议直接将usr/bin/python软链接到/usr/bin/python3.x(这里我的系统里存的是3.5)。(而不是链接到从源码编译安装得到的/usr/local/bin下的python3.x)

# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/bin/python3.5 /usr/bin/python

2. pqxx编译安装结束后建议将usr/bin/python软链接回/usr/bin/python2.7(恢复原先状态)【以免未来出现一些不可控的状况(血泪的教训.jpg

# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/bin/python2.7 /usr/bin/python

原文地址:https://www.cnblogs.com/RDaneelOlivaw/p/8439677.html

时间: 2024-11-08 21:40:52

编译pqxx源码configure时遇到codecs.py LookupError的解决方法的相关文章

android反编译查看源码,apk解压后XML乱码解决

1:找了好几个软件都不能图形化的解决反编译,很不舒服,最后找了个还算顺手的,顺便保存下. 2:使用过程 <1> apk转jar apktoolkit工具 <2> 查看jar源码  jd_gui工具 <3> 解决xml乱码问题  AXMLprinter2工具使xml转成txt格式 工具下载地址:

swig编译GDAL的C#库时遇到的代码安全问题及解决方法

之前一直用的是别人编译好的gdal库开发,今天自己编译了gdal的2.0.0版本,踩了不少坑,但总算解决了. 编译方法主要参考http://blog.csdn.net/liminlu0314/article/details/6945452,踩到的坑及解决方法参考http://www.cnblogs.com/yeahgis/archive/2013/04/10/3011553.html.但是yeahgis前辈没有很好地解决安全透明代码无法调用本机C++代码的问题,给每个类添加安全等级声明太麻烦了.

CentOS6.5上编译OpenJDK7源码

本文地址:http://www.cnblogs.com/wuyudong/p/build-openjdk7.html,转载请注明源地址. 采用开源的OpenJDK版本,获取其源码的方式有两种: 通Mercurial代码版本管理工具从Repository中直接取得源码,但是速度太慢,需要花费数小时 直接下载官方打包好的源码包(推荐) 下载源码openjdk-7u6-fcs-src-b24-28_aug_2012.zip,解压,下载地址如下: http://www.java.net/download

mac下编译node源码

看过一篇win7 64x下面编译node的文章,链接地址:编译nodejs及其源码研究 下面学习一下在mac下面如何编译node源码. 过程也挺简单. 1.下载源码. > mkdir nodesrc && cd nodesrc #创建nodesrc目录,并定位到该目录下> git clone https://github.com/nodejs/node.git #使用git clone命令下载node源码 当然也可以直接下载压缩包,然后解压到nodesrc目录. 2.了解一下n

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

Windows,linux下编译qt源码(比较简单)

一.linux下静态编译qt源码 1.取到qt源码并解压到文件夹 2.cd到qt目录下 3.使用configure生成makefile ./configure–prefix /opt/qtstatic –static –release -nomake examples  --nomake demos-nomake docs -continue 4.待执行完之后执行make 5.makeinstall 参考:http://www.cnblogs.com/qianyuming/archive/201

【转】在Ubuntu下编译Android源码并运行Emulator

原文网址:http://www.mcuos.com/thread-4553-1-1.html 建立编译环境 1.在VirtualBox上安装Ubuntu 2.安装JDK   $ sudo apt-get install sun-java5-jdk  或   $ sudo apt-get install sun-java6-jdk (donut 1.6)3.安装flex,bison,gperf,libsdl-dev,libesd0-dev,libwxgtk2.6-dev(可选),build-ess

cygwin下编译zlib源码

本文介绍在cygwin下编译zlib源码的方法步骤,这个过程虽然简单,但还是有一些需要注意的地方. zlib源码下载地址: http://www.zlib.net/ 下载后,解压就会生成zlib-1.2.8这种文件夹. 1. 编译步骤: 首先,创建一个文件夹,用configure命令指定编译结果到这个文件夹. 其次,make 最后,make install 当然,也可以将最后两步合并为 make & make install 2. 为加深印象,特帖实践过程如下: $ pwd /cygdrive/

[原]编译Android源码过程中遇到的问题

编译Android源码的过程参考Android官网介绍: 1.下载Android源码的步骤:https://source.android.com/source/downloading.html 2.编译Android源码的步骤:https://source.android.com/source/building-running.html 下面就是我遇到的一些问题: 1.Compile Android Source时JDK相关的错误: 错误1: target release 1.5 conflic