Python 3.x 如何从源代码无根代码构建Python 3.5.2

Python 3.x 如何从源代码无根代码构建Python 3.5.2,python-3.x,tkinter,build,centos7,Python 3.x,Tkinter,Build,Centos7,我想从源代码构建Python 3.5.2。要做到这一点,我需要tcl和tk。我的配置: ./configure --prefix=/home/****e/python/python35 \ --with-tcltk-includes="-I/opt/software/tcltk8.6/include" \ --with-tcltk-libs="-L/opt/software/tcltk8.6/lib -ltcl8.6 -ltk8.6" make 获取编译错误:: gcc -pthread -

我想从源代码构建Python 3.5.2。要做到这一点,我需要tcl和tk。我的配置:

./configure 
--prefix=/home/****e/python/python35 \
--with-tcltk-includes="-I/opt/software/tcltk8.6/include" \
--with-tcltk-libs="-L/opt/software/tcltk8.6/lib -ltcl8.6 -ltk8.6"
make
获取编译错误::

gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I./Include -I/home/*****e/python/python35/include -I. -IInclude -I/usr/local/include -I/home/*****e/python/src/Python-3.5.2/Include -I/home/*****e/python/src/Python-3.5.2 -c /home/*****e/python/src/Python-3.5.2/Modules/_tkinter.c -o build/temp.linux-x86_64-3.5/home/*****e/python/src/Python-3.5.2/Modules/_tkinter.o -I/opt/software/tсltk8.5/include
/home/*****e/python/src/Python-3.5.2/Modules/_tkinter.c:49:17: fatal error: tcl.h: No such file or directory
#include <tcl.h>
compilation terminated.

Failed to build these modules:
_tkinter
并写入绝对路径

#include </opt/software/tсltk8.6/include/tcl.h>
#include </opt/software/tсltk8.6/include/tk.h>
在这种情况下,我应该怎么做?为什么它在
/usr/bin/ld

tcl和tk安装在:

/opt/software/tcltk8.6
Python的来源是:

~/python/src/Python-3.5.2

我找到了解决办法。您应该在公共目录中安装所有软件包

sqlite3安装:

./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir --with-tcl=/path/to/tcl/source/tcl8.6.8/unix
make -j && make install
./configure \
--prefix=path/to/python/installation/homedir \
make -j && make install
tcl安装:

./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir --with-tcl=/path/to/tcl/source/tcl8.6.8/unix
make -j && make install
./configure \
--prefix=path/to/python/installation/homedir \
make -j && make install
tk安装:

./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir --with-tcl=/path/to/tcl/source/tcl8.6.8/unix
make -j && make install
./configure \
--prefix=path/to/python/installation/homedir \
make -j && make install
在安装Python之前,应设置环境变量:

export LD_LIBRARY=/path/to/python/installation/homedir/lib
export TK_LIBRARY=/path/to/python/installation/homedir/lib
编辑
setup.py
文件并将sqlite3库的路径添加到数组:

sqlite_inc_paths = [ '/usr/include',
                 '/usr/include/sqlite',
                 '/usr/include/sqlite3',
                 '/usr/local/include',
                 '/usr/local/include/sqlite',
                 '/usr/local/include/sqlite3',
                 '/path/to/python/installation/homedir/include',
                 ]
和Python安装:

./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir
make -j && make install
./configure --prefix=/path/to/python/installation/homedir --with-tcl=/path/to/tcl/source/tcl8.6.8/unix
make -j && make install
./configure \
--prefix=path/to/python/installation/homedir \
make -j && make install

在这之后,所有这些都应该是正确的。

这些错误并不意味着TCL/TK libs是在/usr/bin/ld目录中搜索的。这意味着程序/usr/bin/ld引发了找不到libs的错误。使用
/configure--help
查找指定libs路径的选项。@acw1668-非常感谢!我是Linux新手