ubuntu编译python源码的坑
在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源码的坑的更多相关文章
- windows使用VS编译python源码
使用VS2021编译python源码 说明,使用VS2019也是可以的. 环境准备 对于VS2019首要要安装必要的环境 到python官网下载源码压缩包以及解压(红色箭头任选一个都行) 打开下载好的 ...
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...
- VS2013编译python源码
系统:win10 手头有个python模块,是用C写的,想编译安装就需要让python调用C编译器.直接编译发现使用的是vc9编译,不支持C99标准(两个槽点:为啥VS2008都还不支持C99?手头这 ...
- Ubuntu编译Android源码过程中的空间不足解决方法
Android源码一般几十G,就拿Android5.0来说,下载下来大概也有44G左右,和编译产生的文件以及Ubuntu系统占用的空间加起来,源码双倍的空间都不够有.编译源码前能分配足够的空间再好不过 ...
- ubuntu 编译android源码
1.https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 清华大学Android 镜像使用 ...
- ubuntu 编译android 源码笔记
已经验证,可以编译成功.过程中会碰到一些编译错误,安装好依赖环境,可以解决. 1.splite压缩包的合并,解压缩,md5验证 http://pan.baidu.com/s/1bnG1NtX kitk ...
- ubuntu14.04编译mono源码(有坑...)
从github上下载了mono的源码,然后打算编译了.百度了一下教程,我去...居然没有教程.换bing搜索一下,我去...还是没有.关键字换一下:how to build mono on linu ...
- Ubuntu编译Android源码步骤
Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ...
- 《python源码剖析》笔记一——python编译
1.python的架构: 2.python源码的组织结构: 3.windows环境下编译python:
随机推荐
- [.NET开发] C# 如何更改Word语言设置
一般在创建或者打开一个Word文档时,如果没有进行过特殊设置的话,系统默认的输入语言的是英语输入,但是为适应不同的办公环境,我们其实是需要对文字嵌入的语言进行切换的,因此,本文将介绍如何使用Spire ...
- Rspec: everyday-rspec实操。FactoryBot预构件 (rspec-expectations gem 查看匹配器) 1-4章
总文档连接: RSpec.info/documentation/ 包括core, expectiation,rails , mock, 点击最新版本,然后右上角搜索class, method. 第3章 ...
- 12月17日周日 form_for的部分理解。belongs_to的部分理解
1.lean guide:helper method query ,✅
- 3 python 基本数据类型
1.python的基本数据类型 1.字符串 不可变数据类型 2.int //整除 %取余 bit_length() print(a.bit_length()) #打印某个数字类型的二进制长度 3.bo ...
- hdu6398 计算几何
不算严格的计算几何,就是各种分类 精度调好就能过,考虑三条边斜着放的所有情况即可 #include<bits/stdc++.h> #define LL long long #define ...
- hdu 1704 (Floyd 传递闭包)
Rank Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- consumer的DubboClientHandler线程池
1. 创建线程池 创建线程池的调用栈如下: SimpleDataStore把线程池存放在map中. public class NettyClient extends AbstractClient { ...
- 杜伦大学提出GANomaly:无需负例样本实现异常检测
杜伦大学提出GANomaly:无需负例样本实现异常检测 本期推荐的论文笔记来自 PaperWeekly 社区用户 @TwistedW.在异常检测模块下,如果没有异常(负例样本)来训练模型,应该如何实现 ...
- cnblogs插件jiathis
博客园cnblogs增加分享插件 <!--jiathis button Begin--> <div id="ckepop"> <span class= ...
- BZOJ1652 [Usaco2006 Feb]Treats for the Cows
蒟蒻许久没做题了,然后连动规方程都写不出了. 参照iwtwiioi大神,这样表示区间貌似更方便. 令f[i, j]表示i到j还没卖出去,则 f[i, j] = max(f[i + 1, j] + v[ ...