首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在源码中使用_bz2、_sqlite和_ssl构建Python3.3.2

如何在源码中使用_bz2、_sqlite和_ssl构建Python3.3.2
EN

Stack Overflow用户
提问于 2013-07-09 19:05:17
回答 2查看 404关注 0票数 1

我想在我的SLE11 (OpenSUSE)上从头开始构建Python3.3.2。

在编译Python的过程中,我收到了_bz2_sqlite_ssl模块尚未编译的消息。

我用各种搜索引擎寻找解决方案。人们经常说,您必须在包管理系统中安装-dev包,但我没有根访问权限。

我下载了缺少的库的源包,但我不知道如何告诉Python使用这些库。有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2019-09-27 04:32:34

简而言之,您可以从源代码配置这些包,并将它们放入主目录中的某个位置,比如./configure --prefix=$HOME/opt

路径$HOME/.local也可能是一个很好的选择,因为许多发行版似乎已经在用户的$PATH中包含了$HOME/.local/bin (这是pip install --user在Linux平台上默认放置可执行文件的位置)。

然后,通过将额外的标志传递给编译器和链接器,告诉Python构建过程从该位置使用中的库。对于_sqlite3扩展,我将使用SQLite的例子,因为这是我今天必须做的,所以我知道这是可行的:

代码语言:javascript
运行
复制
# build and install SQLite from the autoconf version of the "amalgamated"
# source, available at https://www.sqlite.org/download.html
cd /path/to/sqlite-source
./configure --prefix=$HOME/opt
make -j8  # 8 parallel tasks
make install

# tell the C/C++ preprocessor to also look for headers in $HOME/opt/include
export CPPFLAGS="-I$HOME/opt/include"

# tell the linker to write $HOME/opt/lib into the runtime path of any binaries
# it creates; also tell it to look for extra libraries in $HOME/opt/lib
export LDFLAGS="-Wl,-rpath=$HOME/opt/lib -Wl,-rpath=$HOME/opt/lib64 \
                -L$HOME/opt/lib -L$HOME/opt/lib64"

# tell the compiler to optimize at level 3 (optional)
export CFLAGS="-O3"

# tell Python to build into your home directory; CFLAGS, CPPFLAGS, and
# LDFLAGS are automatically picked up from the environment
cd /path/to/python-source
./configure --prefix=$HOME/opt --enable-shared --enable-optimizations
make -j8 && make install

# add $HOME/opt/bin to your $PATH
cp -i ~/.bash_profile ~/.bash_profile-$(date +%Y%m%d)
echo -e '
# add homebrew software in $HOME/opt to $PATH
export PATH="$HOME/opt/bin:$PATH"' >> ~/.bash_profile

如果您像我上面所做的那样预先定义它们,那么与构建相关的环境变量(CFLAGS等人)如果你期望configure去拾取它们,你必须是export版的。

您需要注销并重新登录才能使对$PATH所做的更改生效。你也可以在~/.bashrc中修改你的$PATH,但这样做也有缺点。(实际上,两者都有缺点,但这是另一个话题。)

有关更多详细信息,请参阅this SO answer

票数 1
EN

Stack Overflow用户

发布于 2013-08-01 03:33:18

我不使用那个发行版,但使用Linux Mint (它基于Ubuntu)。

在我的例子中,在编译Python3.3.2之前,我已经安装了必要的-dev库:$ sudo apt-get install libssl-dev $ sudo apt-get install libbz2-dev ...

然后,我编译并安装了Python,这些导入工作正常。

希望你会发现它很有用

莱昂

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17546628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档