gpt4 book ai didi

python - 从源代码构建 python 时如何忽略本地 python

转载 作者:太空狗 更新时间:2023-10-29 17:28:52 26 4
gpt4 key购买 nike

当我尝试使用以下方法构建我自己的 Python 版本时:

./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install

我在安装过程中看到一些错误:

/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libpython2.7.a: could not read symbols: Bad value

当链接器尝试使用 /usr/local/lib/libpython2.7.a 而不是新编译的库时,问题就开始了。

如何防止链接器(configure/make)使用系统上安装的 python 库?

最佳答案

这看起来是 setup.py 脚本的一个错误特征,当 make 构建目标 sharedmods

您必须手动清除 setup.py,...

./configure --enable-shared --prefix=/app/vendor/python-dev

...首先,然后编辑 setup.py,找到第 442、443 和 444 行,它们应该如下所示...

if not cross_compiling:
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')

...然后将它们注释掉,使它们看起来像这样...

# if not cross_compiling
# add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
# add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')

...然后 make 应该可以工作。

关于python - 从源代码构建 python 时如何忽略本地 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com