我想在我的SLE11 (OpenSUSE)上从头开始构建Python3.3.2。
在编译Python的过程中,我收到了_bz2、_sqlite和_ssl模块尚未编译的消息。
我用各种搜索引擎寻找解决方案。人们经常说,您必须在包管理系统中安装-dev包,但我没有根访问权限。
我下载了缺少的库的源包,但我不知道如何告诉Python使用这些库。有人能帮帮我吗?
发布于 2019-09-27 04:32:34
简而言之,您可以从源代码配置这些包,并将它们放入主目录中的某个位置,比如./configure --prefix=$HOME/opt。
路径$HOME/.local也可能是一个很好的选择,因为许多发行版似乎已经在用户的$PATH中包含了$HOME/.local/bin (这是pip install --user在Linux平台上默认放置可执行文件的位置)。
然后,通过将额外的标志传递给编译器和链接器,告诉Python构建过程从该位置使用中的库。对于_sqlite3扩展,我将使用SQLite的例子,因为这是我今天必须做的,所以我知道这是可行的:
# 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。
发布于 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,这些导入工作正常。
希望你会发现它很有用
莱昂
https://stackoverflow.com/questions/17546628
复制相似问题