gpt4 book ai didi

python - 无法在 solaris 10 上的 python 中编译 _ssl

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:06 24 4
gpt4 key购买 nike

我正在尝试在 Sparc Solaris 10 机器上编译 python 2.7.9。我已经成功安装了它,除了 _ssl:

Python build finished, but the necessary bits to build these modules were not found:
_bsddb _ssl _tkinter
bsddb185 gdbm linuxaudiodev
ossaudiodev

OpenSSL 已安装,库和包含在这里:

libs here: /usr/sfw/lib and includes here: /usr/sfw/include/openssl

库是:

lrwxrwxrwx   1 root     root          17 May 16  2014 libssl.so -> ./libssl.so.0.9.7
-rwxr-xr-x 1 root bin 1424312 Jun 27 2013 libssl.so.0.9.7
-rwxr-xr-x 1 root bin 151540 Jun 27 2013 libssl_extra.so.0.9.7
-rw-r--r-- 1 root bin 293 Jan 22 2005 llib-lssl
-rw-r--r-- 1 root bin 279739 Jun 21 2013 llib-lssl.ln

因此,经过一些研究,python 似乎只检查标准路径中是否存在库:

例如/usr/local/ssl/lib & /usr/local/ssl/include

解决它的过程是(我相信)在源代码树中编辑 setup.py 并将路径添加到这些部分,例如:

    ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
['/usr/sfw/lib',
'/usr/local/ssl/lib',
'/usr/contrib/ssl/lib/'
] )

...和...

    search_for_ssl_incs_in = [
'/usr/sfw/include/openssl',
'/usr/local/ssl/include',
'/usr/contrib/ssl/include/'
]

我正在清理,然后再次运行此配置:

./configure --prefix=/opt/python-2.7.9 --enable-shared

...然后使用 dmake 重新编译。

仍然找不到库。我的解决方法是否正确?

非常感谢。

最佳答案

除了 Joey Wilhelm 的回应,

如果你正在编译 python 2.7.9 或任何其他版本(比如我在 python 2.7.12 上)。

您的机器应该存在某些必需的依赖项:

  • 如果是 ubuntu :

    apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev -y

以上命令下载需要的依赖

  1. 对于 Solaris:
  2. 您的机器上应该存在等效的依赖项。如果它们不存在,请使用以下链接下载。 (确保可以访问互联网)

    /usr/sbin/pkgadd -d http://get.opencsw.org/now
    /opt/csw/bin/pkgutil -U

  3. 加载所有存在于 ( https://www.opencsw.org/package/python/) 的依赖项和上面提到的 ubuntu 的其他依赖项。这些软件包可在 ( https://www.opencsw.org/get-it/packages/ )

  4. 对于 openssl,需要 libssl.so 在路径上可用,如果没有,您可以在自定义位置安装 openssl。

    额外安装的自定义位置:/tmp/local

    (您也可以使用标准的/usr/local,但对我来说这些位置是只读的)

    curl https://www.openssl.org/source/openssl-1.0.2l.tar.gz | tar xz && cd openssl-1.0.2l && ./config shared --prefix=/tmp/local/&& make && make install

    • 如果您已经有 zlib(数据压缩),则无需执行以下步骤,否则请执行以下操作:

https://zlib.net/fossils/zlib-1.2.11.tar.gz 下载 zlib

    tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/tmp/local
make
make install
  • 这些依赖项应在运行时存在于编译器的适当路径下:

Python 安装脚本

    export LDFLAGS="-L/tmp/local/lib/ -L/usr/local/lib/"

# Path /opt/csw/lib/ makes sure that required libraries that we downloaded are available to the compiler
export LD_LIBRARY_PATH="/tmp/local/lib/:/opt/csw/lib/:/usr/local/lib/"
export CPPFLAGS="-I/tmp/local/include -I/tmp/local/include/openssl"
export CFLAGS="-I/tmp/local/include -I/tmp/local/include/openssl"

wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz | tar xzf Python-2.7.12.tgz && cd Python-2.7.12
./configure --prefix=/tmp/python/
make install
  • 最终您的 python 构建将在/tmp/python 可用(可以选择适当的路径)

默认构建将是 32 位 python。如果您想构建 64 位 python,则需要导入相应的 64 位库并将它们保存在路径中。

注意:

64 位 python 构建生成的重要路径是

/opt/csw/lib/sparcv9

/opt/csw/lib/64

-m64 位的设置在标志中也很重要

如果您有/usr/sfw/lib/libssl.so 文件,则无需构建自定义 openssl,您可以在标志中添加/usr/sfw/lib/和/usr/sfw/include 路径。

确保使用命令构建 openssl:

cd openssl-1.0.1e
./Configure solaris64-sparcv9-cc --prefix=<path> shared
make
make install

验证 64 位 python 安装:

Python 2.7.12 (default, Jun 6 2017, 08:34:21)

GCC 4.5.2] on sunos5

import platform

platform.architecture()

('64bit', 'ELF')

关于python - 无法在 solaris 10 上的 python 中编译 _ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335248/

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