在linux平台下编译python时只需要3条命令.

编译步骤

在github或https://www.python.org/downloads/中下载python源码

解压压缩包进路目录执行

1. ./configure --prefix=你想安装python的全路径 [--enable-shared在bin目录下生成libpython版本号,so文件 编译成动态链接可选]

2. make

3. make install

编译出现的错:

在第2个命令make是可能出现错误

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -c ./Modules/xxsubtype.c -o Modules/xxsubtype.o

gcc -pthread -c -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -DSVNVERSION=\"`LANG=C svnversion .`\" -o Modules/getbuildinfo.o ./Modules/getbuildinfo.c

gcc: error: directory": 没有那个文件或目录

make: *** [Modules/getbuildinfo.o] 错误 1

这里说的是svn的版本好出问题了,解决方法1.

编辑Makefile 将的SVNVERSION设置为"", 即SVNVERSION=""

解决方案2.

查看自己本地的svn版本:1.svn --version 2.将SVNVERSION设置为自己对应的版本,export SVNVERSION=1.x.x SVN版本号.

在第2个命令make l时可能出现的错误

running build

running build_ext

sqlite: found /usr/include/sqlite3.h

/usr/include/sqlite3.h: version 3.8.2

Traceback (most recent call last):

File "./setup.py", line 1524, in

main()

File "./setup.py", line 1519, in main

'Lib/smtpd.py']

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/core.py", line 151, in setup

dist.run_commands()

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/dist.py", line 974, in run_commands

self.run_command(cmd)

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/dist.py", line 994, in run_command

cmd_obj.run()

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/command/build.py", line 112, in run

self.run_command(cmd_name)

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/cmd.py", line 333, in run_command

self.distribution.run_command(command)

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/dist.py", line 994, in run_command

cmd_obj.run()

File "/home/cht/code/sourceCode/Python-2.5/Lib/distutils/command/build_ext.py", line 281, in run

self.build_extensions()

File "./setup.py", line 97, in build_extensions

self.detect_modules()

File "./setup.py", line 795, in detect_modules

sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))]

File "/home/cht/code/sourceCode/Python-2.5/Lib/posixpath.py", line 119, in dirname

return split(p)[0]

File "/home/cht/code/sourceCode/Python-2.5/Lib/posixpath.py", line 77, in split

i = p.rfind('/') + 1

AttributeError: 'NoneType' object has no attribute 'rfind'

make: *** [sharedmods] 错误 1

这是python源码用了 /usr/include/sqlite3.h,p原本应该是个str对象导致p最后为None,临时解决方法

将 /usr/include/sqlite3.h先重命名 >> sudo mv /usr/include/sqlite3.h /usr/include/sqlite3.h_ 在命执行make和make install 就不会出现这个错误了.

执行完后将sqllite3.h改回 >> sudo mv /usr/include/sqlite3.h_ /usr/include/sqlite3.h

python源码多平台编译_ubuntu编译python源码的坑相关推荐

  1. 计算机毕业设计Python+uniapp同城游玩平台小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp同城游玩平台小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...

  2. python开发微信订阅号如何申请_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...

    1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大.同时python ...

  3. python可以在多平台运行 体现了python语言的_现代科学运算—MATLAB语言与应用,中国大学MOOC(慕课)答案公众号搜题...

    [单选题]桡骨的主要骨性标志是 [单选题]筛窦后群开口于 下面选项中,正确描述环形包扎法的是(). [单选题]汽车修理厂属于什么类型企业 [简答题]驾驶员的生理.心里特性主要包括哪些方面? 企业采用托 ...

  4. 免费网站源码分享平台 有哪些好的源码网站

    有哪些值得推荐的源码共享网站 网站源码资源当然首选站长源码下载了,主要源码安全系数要高点,最主要是免费,还有就是一些商业源码分享站了可能会要积分才能下载了,比如商业源码,A5源码,源码... 有没有好 ...

  5. python中国大学慕课平台_计算机程序设计-Python,中国大学MOOC(慕课)答案公众号搜题...

    [其它]教育与社会发展 习题 一.填空题 1. 通过________实现对政治经济的影响,是教育作用于政治经济的主要途径. 2.________ 是教育发展的物质基础,同时也对教育提出了与一定生产力相 ...

  6. windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

  7. python官网下载步骤linux-官方下载python源码,编译linux版本的python

    我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自 ...

  8. vs2017运行显示系统找不到指定的文件_windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

  9. python3 llvmlite源码_将Paddle-Lite在树莓派上源码编译及编译python预测库

    新手使用Paddle-Lite 第一篇博客,第一次接触树莓派,把我的经历说一说. 一.为什么选Paddle-Lite? 因为我第一次接触人工智能,PaddlePaddle官网https://www.p ...

最新文章

  1. [微信小程序]星级评分和展示(详细注释附效果图)
  2. java安全插件_如何安全地实现Java插件安全性?
  3. php返回图片给安卓_android上传图片到PHP的过程详解
  4. 驱动编程中的头文件与内核源码的关系
  5. eclipse 如何忽略js文件报错
  6. node.js Stream Buffer FsPromise
  7. how is sap-ui-core.js initialize the reqeust of sap-ui-core-dbg.js
  8. Java Integer类highestOneBit()方法与示例
  9. 每天进步一点点《ML - 线性回归》
  10. 安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效
  11. typecho反序列化漏洞复现
  12. 时空、维度,以及其他(二)
  13. 鼠标测试软件m,[论坛]魔技无线激光鼠标测试心得(二)
  14. 七、微信小程序运行报错:Error: AppID 不合法,invalid appid
  15. win10系统安装Docker详解
  16. 明日之后无限金条服务器,明日之后:无限金条bug 你值得收藏
  17. 生成android 证书
  18. 微信多媒体文件speex格式转为mp3文件格式
  19. 《Redis设计与实现》第十一章 AOF持久化
  20. 数据增强方法——Back translations(反向翻译)

热门文章

  1. linux 实时功能,linux – 什么是同时具有实时循环和非实时功能的更好方法
  2. openstack-5:安装rabbitmq
  3. 第83天:jQuery中操作form表单
  4. Linux shell编程学习笔记-----第十六章
  5. Linux shell命令最常用的快捷键
  6. hdu2019——数列有序解题报告
  7. 使用Windows8开发Metro风格应用四
  8. Win32窗口编程基础知识——主函数
  9. glib访问mysql_Mysql-安装与配置glibc
  10. Laravel 将数据表中的数据导出,并生成seed文件