当前位置: > Linux发行版 > Fedora >

Fedora 20 源码编译安装最新版的python 3.4.2

时间:2015-12-18 12:37来源:linux.it.net.cn 作者:IT

1. 下载最新版的python3.4.2

https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tar.xz
https://www.python.org/downloads/

python 自带的 IDEL 编辑器依赖 tkinter 模块

tkinter 模块又依赖 tcl 和 tk 库, 所以还需要下载这俩个库。

http://www.tcl.tk/software/tcltk/download.html

从这个地址分别下载 tcl8.6.2-src.tar.gz 和 tk8.6.2-src.tar.gz

2. 先安装 tcl 库, 再安装 tk 库。

 


 
  1. tar -xzvf tcl8.6.2-src.tar.gz  
  2. cd tcl8.6.2  
  3. ./configure \  
  4. --prefix=/home/kuaile/usr/python3.4 \  
  5. --enable-64bit  
  6. make -j4  
  7. make install  

 

tcl 库安装完成后, 导入相应的环境变量

 


 
  1. export PATH=/home/kuaile/usr/python3.4/bin:$PATH  
  2. export PKG_CONFIG_PATH=/home/kuaile/usr/python3.4/lib/pkgconfig:$PKG_CONFIG_PATH  
  3. export LD_LIBRARY_PATH=/home/kuaile/usr/python3.4/lib:$LD_LIBRARY_PATH  

然后安装 tk 库

 

 


 
  1. tar -xzvf tk8.6.2-src.tar.gz  
  2. cd tk8.6.2  
  3. ./configure \  
  4. --prefix=/home/kuaile/usr/python3.4 \  
  5. --with-tcl=/home/kuaile/usr/python3.4/lib \  
  6. --enable-64bit  
  7. make -j4  
  8. make install  

tcl 和 tk 库正确安装完成后就可以安装python了。

 

3. 安装python

 


 
  1. tar -xJvf Python-3.4.2.tar.xz  
  2. cd Python-3.4.2  

 

python3 默认不包含 tkinter 模块

需要编辑 Python-3.4.2/Modules/Setup.dist 这个文件。

用自己熟悉的文本编辑器打开这个文件 找到 tkinter 模块这段

 


 
  1. <pre name="code" class="plain"># The _tkinter module.  
  2. #  
  3. # The command for _tkinter is long and site specific.  Please  
  4. # uncomment and/or edit those parts as indicated.  If you don't have a  
  5. # specific extension (e.g. Tix or BLT), leave the corresponding line  
  6. # commented out.  (Leave the trailing backslashes in!  If you  
  7. # experience strange errors, you may want to join all uncommented  
  8. # lines and remove the backslashes -- the backslash interpretation is  
  9. # done by the shell's "read" command and it may not be implemented on  
  10. # every system.  
  11.   
  12. # *** Always uncomment this (leave the leading underscore in!):  
  13. # _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \  
  14. # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:  
  15. #   -L/usr/local/lib \  
  16. # *** Uncomment and edit to reflect where your Tcl/Tk headers are:  
  17. #   -I/usr/local/include \  
  18. # *** Uncomment and edit to reflect where your X11 header files are:  
  19. #   -I/usr/X11R6/include \  
  20. # *** Or uncomment this for Solaris:  
  21. #   -I/usr/openwin/include \  
  22. # *** Uncomment and edit for Tix extension only:  
  23. #   -DWITH_TIX -ltix8.1.8.2 \  
  24. # *** Uncomment and edit for BLT extension only:  
  25. #   -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \  
  26. # *** Uncomment and edit for PIL (TkImaging) extension only:  
  27. #     (See http://www.pythonware.com/products/pil/ for more info)  
  28. #   -DWITH_PIL -I../Extensions/Imaging/libImaging  tkImaging.c \  
  29. # *** Uncomment and edit for TOGL extension only:  
  30. #   -DWITH_TOGL togl.c \  
  31. # *** Uncomment and edit to reflect your Tcl/Tk versions:  
  32. #   -ltk8.2 -ltcl8.2 \  
  33. # *** Uncomment and edit to reflect where your X11 libraries are:  
  34. #   -L/usr/X11R6/lib \  
  35. # *** Or uncomment this for Solaris:  
  36. #   -L/usr/openwin/lib \  
  37. # *** Uncomment these for TOGL extension only:  
  38. #   -lGL -lGLU -lXext -lXmu \  
  39. # *** Uncomment for AIX:  
  40. #   -lld \  
  41. # *** Always uncomment this; X11 libraries to link with:  
  42. #   -lX11  

 


把相应的注释去掉并需改为正确的值。

 

 


 
  1. # The _tkinter module.  
  2. #  
  3. # The command for _tkinter is long and site specific.  Please  
  4. # uncomment and/or edit those parts as indicated.  If you don't have a  
  5. # specific extension (e.g. Tix or BLT), leave the corresponding line  
  6. # commented out.  (Leave the trailing backslashes in!  If you  
  7. # experience strange errors, you may want to join all uncommented  
  8. # lines and remove the backslashes -- the backslash interpretation is  
  9. # done by the shell's "read" command and it may not be implemented on  
  10. # every system.  
  11.   
  12. # *** Always uncomment this (leave the leading underscore in!):  
  13.  _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \  
  14. # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:  
  15.     -L/home/kuaile/kusr/python3.4/lib \  
  16. # *** Uncomment and edit to reflect where your Tcl/Tk headers are:  
  17.     -I/home/kuaile/kusr/python3.4/include \  
  18. # *** Uncomment and edit to reflect where your X11 header files are:  
  19. #   -I/usr/X11R6/include \  
  20. # *** Or uncomment this for Solaris:  
  21. #   -I/usr/openwin/include \  
  22. # *** Uncomment and edit for Tix extension only:  
  23. #   -DWITH_TIX -ltix8.1.8.2 \  
  24. # *** Uncomment and edit for BLT extension only:  
  25. #   -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \  
  26. # *** Uncomment and edit for PIL (TkImaging) extension only:  
  27. #     (See http://www.pythonware.com/products/pil/ for more info)  
  28. #   -DWITH_PIL -I../Extensions/Imaging/libImaging  tkImaging.c \  
  29. # *** Uncomment and edit for TOGL extension only:  
  30. #   -DWITH_TOGL togl.c \  
  31. # *** Uncomment and edit to reflect your Tcl/Tk versions:  
  32.     -ltk8.6 -ltcl8.6 \  
  33. # *** Uncomment and edit to reflect where your X11 libraries are:  
  34. #   -L/usr/X11R6/lib \  
  35. # *** Or uncomment this for Solaris:  
  36. #   -L/usr/openwin/lib \  
  37. # *** Uncomment these for TOGL extension only:  
  38. #   -lGL -lGLU -lXext -lXmu \  
  39. # *** Uncomment for AIX:  
  40. #   -lld \  
  41. # *** Always uncomment this; X11 libraries to link with:  
  42.     -lX11  
主要修改 tcl 和 tk 库相应的变量值, 还有 X11 的注释也要去掉。

 

完成后,就可以开始编译python了。

 


 
  1. ./configure \  
  2. --prefix=/home/kuaile/usr/python3.4 \  
  3. --with-tcltk-includes='-I/home/kuaile/usr/python3.4/include' \  
  4. --with-tcltk-libs='-L/home/kuaile/usr/python3.4/lib'  
  5.   
  6. make -4  
  7. make install  

到此,python3 安装完成。

 

 
(责任编辑:IT)
------分隔线----------------------------