在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 <module>
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

ubuntu编译python源码的坑的更多相关文章

  1. windows使用VS编译python源码

    使用VS2021编译python源码 说明,使用VS2019也是可以的. 环境准备 对于VS2019首要要安装必要的环境 到python官网下载源码压缩包以及解压(红色箭头任选一个都行) 打开下载好的 ...

  2. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  3. VS2013编译python源码

    系统:win10 手头有个python模块,是用C写的,想编译安装就需要让python调用C编译器.直接编译发现使用的是vc9编译,不支持C99标准(两个槽点:为啥VS2008都还不支持C99?手头这 ...

  4. Ubuntu编译Android源码过程中的空间不足解决方法

    Android源码一般几十G,就拿Android5.0来说,下载下来大概也有44G左右,和编译产生的文件以及Ubuntu系统占用的空间加起来,源码双倍的空间都不够有.编译源码前能分配足够的空间再好不过 ...

  5. ubuntu 编译android源码

    1.https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/                                   清华大学Android 镜像使用 ...

  6. ubuntu 编译android 源码笔记

    已经验证,可以编译成功.过程中会碰到一些编译错误,安装好依赖环境,可以解决. 1.splite压缩包的合并,解压缩,md5验证 http://pan.baidu.com/s/1bnG1NtX kitk ...

  7. ubuntu14.04编译mono源码(有坑...)

     从github上下载了mono的源码,然后打算编译了.百度了一下教程,我去...居然没有教程.换bing搜索一下,我去...还是没有.关键字换一下:how to build mono on linu ...

  8. Ubuntu编译Android源码步骤

    Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ...

  9. 《python源码剖析》笔记一——python编译

    1.python的架构: 2.python源码的组织结构: 3.windows环境下编译python:

随机推荐

  1. Short Encoding of Words

    2018-07-02 09:48:48 问题描述: 问题求解: 方法一.问题给了规模n = 2000,也就是说用BF在O(n^2)的时间复杂度可以过,因此,第一个方法就是BF,但是需要注意的是这里已经 ...

  2. [.NET开发] 浅说C#异步和同步

    提到异步,那么与之对应的是什么呢?同步.那么C#的异步和同步是如何工作的呢? 首先,我们先来看看栗子: 新建一个控制台应用程序,在Program文件中添加如下代码: 1 static void Mai ...

  3. 单细胞 RNA-seq 10X Genomics

    单细胞流程跑了不少,但依旧看不懂结果,是该好好补补了. 有些人可能会误会,觉得单细胞的RNA-seq数据很好分析,跟分析常规的RNA-seq应该没什么区别.今天的这篇文章2015年3月发表在Natur ...

  4. win10 WiFi 密码查询 命令

    如果你笔记本有WiFi,正好你系统又是Win10 那么... netsh wlan show profile * key=clear

  5. LeetCode--119--杨辉三角II

    问题描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你 ...

  6. python-day16--内置函数

    内置函数操作 #!usr/bin/env python # -*- coding:utf-8 -*- # 1.locals()和globals() # def func(): # x=1 # y=2 ...

  7. ubuntu计划任务

    1.第一次编写计划任务,你输入crontab -l 会报错:no crontab for root 这个解决方法:输入crontab -e 2,第一次编写计划任务的时候你要输入select -edit ...

  8. ScoketTimeout Exception浅析

    以前都是用WebService的方式调用服务方的服务,此次直接调用别人的http服务. 使用的客户端是org.apache.http.client.HttpClient. 用的httpclient-4 ...

  9. 071——VUE中vuex之使用getters计算每一件购物车中商品的总价

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. hadoop kafka install multi-borker (7)

    multi-borker function like cluster technology First we make a config file for each of the brokers (o ...