Linux下的python下安装
一.编译
1.获取源代 Python-2.5.5.tar,拷贝到/users/ems目录下。
2.  解压tar xvf Python-2.5.5.tar,解压到了/users/ems/ Python-2.5.5目录下。
    tar xvf Python-2.5.5.tar
3. 进入/users/ems/ Python-2.5.5目录,进行编译安装
32位的Linuxunix
    $ ./configure CFLAGS=-fPIC CPPFLAGS=-fPIC
    64Linuxunix
$ ./configure CFLAGS=-fPIC CPPFLAGS=-fPIC  CC="gcc -m64"
64solaris unix(CC编译器)
./configure CFLAGS=-fPIC CPPFLAGS=-fPIC CC="cc -m64" CXX="CC -m64"
或者(参考QtCC编译选项)
export CC="cc -xtarget=ultra -xarch=sparc -m64"
export CXX="CC -xtarget=ultra -xarch=sparc -m64"
./configure CFLAGS=-fPIC CPPFLAGS=-fPIC
或者
./configure CFLAGS=-fPIC CPPFLAGS=-fPIC CC="cc -xtarget=ultra -xarch=sparc -m64" CXX="CC -xtarget=ultra -xarch=sparc -m64"
IBM AIX (python2.7)(参见附录3)
./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" --disable-ipv6 AR="ar -X64"
$ make clean
    $ make
    $ make install
$ make setup.py install (替换原来的python)
    注意:
(1)configure的参数很多,以上参数在redhat上是必需的。通过设置参数可以编译成动态库。
(2)执行make install时,需要root权限。因此首先切换到root用户:
    $ su root
    Unix下面由于安全级别高,默认的shell中,很多root用户无法到make,提示“make 命令没有到”,此时,root用户可以进入tcsh下执行make install.
    (3) 执行了make install后,python的头文件、静态库文件libpython2.5.a和可执行文件python2.5分别被拷贝到
    /usr/local/include/python2.5
/usr/local/lib/python2.5/config
/usr/local/bin
    AIX上编译时,头文件pyconfig.h要使用编译目录下生成的pyconfig.h
. 替换redhat linux中默认的Python
    一般情况下redhat linux下系装了python但版本是2.4.x;本次安装后在shell
  #python
  会发现显果:
# python
Python 2.4.3 (#1, Dec 11 2006, 11:38:52)
  [GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2
  Type help, copyright, credits or license for more information.
显示默认版本2.4.x,而不是新编译安装的Python 2.5.5.决办为在终端输入shell命令,将默认python改为Python2.5
sudo ln -sf /usr/local/bin/python2.5 /usr/bin/python
执行完成后,在终端可以输入shell命令python测试:
# python
Python 2.5.5 (r255:77872, Aug 26 2010, 14:41:56)
[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
可见已经更换为新编译的Python 2.5.5
三.PYTHON的环境变量设置
平台中的pythonengine需要在Python的头文件和库的支持。具体的信息已经在pythonenginepro文件中设置好了,需要在.cshrc中增加三个环境变量。
>>####  PYTHON Environment      >>>>#
setenv PYTHON_INCLUDE /usr/local/include/python2.5
setenv PYTHON_LIB /usr/local/lib/python2.5/config
当然,还有CSLib这个环境变量
setenv CSLIB_DIR /ems/vobs/CSLib/python_common
四.“网络设置”启动出错的问题
红帽linux自带了python2.4.3,并且将软连接/usr/bin/python指向了/usr/bin/python2.4。
图形平台使用的是python2.5,在编译python2.5时,会将/usr/bin/python
linux中的网络设置使用了linux自带的python2.4.3。
su root
mv python python2.5_bak
rn –s /usr/bin/python2.4 python
附录:脚本编写中的问题
1. 脚本中字符串连接有中英文混搭的问题
中文自动为unicode,英文为latin,造成连接错误,需要将英文的转换为gbk.(也许还有别的办法,还没试过),下面是代码实例
a = "java -jar "
a += graph.GetEnvValue("SOPHIC_DEPLOY_DIR")
a += "/bin/cad/cadviewer_run.jar "
a += graph.GetEnvValue("SOPHIC_DEPLOY_DIR")
graph.ShowMessage(a)
cmd = a.encode('gbk') + "/cad/狮山变.dxf"
graph.ShowMessage(cmd)
tip = ""
graph.System(cmd,tip)
2. python 的字符串UnicodeDecodeError(同上)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 0: ordinal not in range(128)
以下代码将引起上述错误
# -*- coding: gbk -*-
m = '测试' + u'test'
即当strunicode字符串连接操作时出现这个出错,估计出错原因在于,当对于str + unicode这样两种类型字符串相加时,python先将str字符串转为unicode,再两个unicode字符串相加,但是对于strunicode,python使用了默认的ASCII编码进行str字符串的解码,这时如果str字符串含有中文等非ASCII字符就出现了上述错误
解决方法:
(1)指定strunicode时的解码,不采用默认,对上例
m = '测试'.decode('gbk') + u'test'
(2)unicode转为str,两个str相加,对上例
m = '测试' + u'test'.encode('gbk')
附:
'测试'  unicode编码 = u'\\?'
'测试'     gbk编码python默认安装路径 = '\xb2\xe2\xca\xd42'
'测试'    utf-8编码 = '\xe6\xb5\x8b\xe8\xaf\x952'
相关参考
Python Encodings and Unicode
eric.themoritzfamily/2008/11/21/python-encodings-and-unicode/
3. aix6.1编译python
1.解压python2.5.5
2.在python2.5.5目录下执行./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" --disable-ipv6 AR="ar -X64"
3.修改Modules/ld_so_aix文件170行,增加-lbsd,即改为“CCOPT="$CCOPT -Wl,-bM:SRE -Wl,-T512 -Wl,-H512 -lm -lbsd -o $objfile"”(注意:在AIX5.3中不需要添加-lbsd
4.编译tcl8.4和tk8.4,解压进入unix目录,执行./configure --enable-shared --enable-64bit --enable-threads,手动修改Makefile把CC = cc_r改为CC = xlc_r,执行make,make install,进入/usr/local/lib目录将库的.so后缀复制为.a后缀
5.在python2.5.5中执行make,make install窗体底端
4. aix5.3编译python
1.解压python2.5.5
2.在python2.5.5目录下执行./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" --disable-ipv6 AR="ar -X64"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。