带有“--enable-shared”标志的奇怪 Python 编译结果

2023-11-25

我正在使用 Debian(附带 Python-2.7.3),尝试从源代码编译 Python-2.7.6,以便与 mod_wsgi 和 Apache 一起使用。

根据众多答案,显然,在编译 mod_wsgi 用法时,您必须使用 --enable-shared 。

请按照下列步骤操作:

./configure --enable-shared --prefix=/usr/local/bin/python-2.7.6
make
make install

然后检查交互式外壳@

/usr/local/bin/python-2.7.6/bin/python

我收到“Python 2.7.3(默认,2013 年 1 月 2 日,14:09:21)”等信息

为什么会出现 Python 2.7.3?

我尝试对可执行文件执行 ldd ,结果如下:

linux-vdso.so.1 =>  (0x00007fff271ff000)
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f1545638000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f154541c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1545217000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f1545014000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1544d92000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1544a06000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f15447ef000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f15445d9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1545b40000)

如何阻止它使用系统库并使用本地编译的版本?

我知道对我来说恢复使用系统安装的 Python 版本要容易得多,而且现实世界的差异为零。但这种行为似乎很奇怪。


当你做 Python 的 make 时,运行它:

LD_RUN_PATH=/usr/local/lib make

设置环境变量 LD_RUN_PATH 会强制生成的“python”可执行文件在 /usr/lib 之前先在 /usr/local/lib 中查找 Python 共享库。

mod_wsgi 文档中提到了这一点。

  • http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library

在再次执行此操作之前,请确保执行“make distclean”并重新运行配置以确保您没有旧的构建产品。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有“--enable-shared”标志的奇怪 Python 编译结果 的相关文章

随机推荐

  • Java 中的“类型不明确”错误是什么?

    在下面的代码中 我在最后一行收到编译器的错误 列表类型不明确 在尝试定义 cgxHist 列表的行上 我究竟做错了什么 import java awt import javax swing import java util public c
  • 学习Ruby:推荐阅读的博客? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我即将开始学习 Ruby 并且想要一些阅读材料来帮助我学习 我正在寻找你的top 5Ruby 上的博客 新闻和任何 活跃的 公告板 我可以很好地处理新闻组 但我更喜欢在 BB 中阅读
  • MySQL“二进制”与“char字符集二进制”

    有什么区别binary 10 vs char 10 character set binary And varbinary 10 vs varchar 10 character set binary 它们是同义词吗allMySQL 引擎 有什
  • 将负 y 轴转换为正 (matplotlib)

    I want to plot bar chart for some parameters for men and women I have done like this 我想显示上侧 正 y 轴 的平均值和下侧 负 x 轴 女性的频率 在这
  • 使用 php 显示当前页面的活动导航

    我正在尝试使用 current url basename SERVER PHP SELF 为了确定我在哪个页面 考虑到我的导航 html 存储在 php 文件中并包含在每个页面中 这是我用来确定哪个导航选项应处于活动状态的代码 ul ul
  • NHibernate QueryOver 选择实体和聚合

    我想要做的是显示一个简单的数据网格 其中包含实体数据及其子项的聚合数据 例如 让我们使用订单和行项目 我想显示订单信息以及行项目数 订单 ID 订单日期 行项目数 现在通常在 SQL 中你可以通过多种方式做到这一点 但这是我能想到的在转换为
  • 将 TypeScript 编译器加载到 ClearScript 中,“WScript 未定义”,不可能完成的任务?

    我尝试使用清晰脚本加载打字稿编译器来编译一些基本的 TypeScript 代码 不幸的是 当执行 TypeScript 编译器源代码时 我收到此错误 WScript 未定义 这是LINQPad我使用过的程序 放置 ClearScript d
  • 提升::变体; std::unique_ptr 和复制

    这个问题确定了不可复制类型不能与Boost变体一起使用 Tree class template
  • SIMD 常量浮点数

    我一直在尝试使用微软的 sse 内在函数来优化一些代码 优化代码时最大的问题之一是每当我想使用常量时就会发生 LHS 似乎有一些关于生成某些常量的信息 here and 此处 第 13 4 节 但都是组装 我宁愿避免 问题是 当我尝试使用内
  • 如何在 IIS 中使用性能计数器和 WCF 服务?

    Hi 我在 IIS7 中有一个 WCF 服务 它通过 TCP WAS 与 winform 应用程序进行通信 现在我需要监视性能 我已将其添加到 web config 文件中
  • 并发调用单例对象的Java方法

    我有一个关于 Java 中多线程方法调用的问题 假设我们有一个单例对象 其类声明如下 public class SomeClass public void someMethod SomeValueObject object if objec
  • 带有连接字符串的实体框架 DbContext 构造函数

    有人可以帮助我理解以下两种将连接字符串传递给的方法DbContext 方法 1 public EWebDBContextEMS base mainConnectionString 和方法 2 public EWebDBContextEMS
  • Swift 中“static var”和“var”的区别

    Swift 中 static var 和 var 的主要区别是什么 有人可以用一个小例子向我解释这种差异吗 static var属于类型本身 而var属于类型的实例 特定类型的特定值 例如 struct Car static var num
  • PropertySource 在 ConditionalOnExpression 评估期间不可用

    我有以下组件类 我想根据属性实例化它 Component componentA PropertySource classpath components properties ConditionalOnExpression component
  • android4.0中按串行顺序执行异步任务

    我已经实现了2个异步任务 我使用的是android4 0 其中一个异步任务连续执行 第二个异步任务根据需要执行 可能多次 例如 class AsynTask1 exetends AsyncTask
  • 在 Scala 中,我如何将事件驱动编程与函数式方法结合起来?

    为了澄清事件驱动的含义 我指的是一种情况 def onTrade 每次特定股票交易时都会调用它 假设我想跟踪每日最高交易价格 对我来说 显而易见的解决方案是 var dailyHigh 0 def onTrade if price gt d
  • 汇编语言中的伪随机生成器

    我需要一个用于课程中分配的汇编程序的伪随机数生成器算法 并且我更喜欢一个简单的算法 但是 我无法使用外部库 什么是好的 简单的汇编伪随机数生成器算法 简单的方法是选择两个大的相对素数 a 和 b 然后继续将随机数乘以 a 并加上 b 使用模
  • 如何根据模式将列表拆分为子集?

    我正在这样做 但感觉这可以用更少的代码来实现 毕竟是Python 从列表开始 我根据字符串前缀将该列表拆分为子集 Splitting a list into subsets expected outcome sub 0 a sub 0 b
  • python中的三重引号

    所以我明白如果我执行以下操作 print Anything I type in here works Multiple LINES woohoo 但是如果下面是我的 python 脚本怎么办 This is my python Script
  • 带有“--enable-shared”标志的奇怪 Python 编译结果

    我正在使用 Debian 附带 Python 2 7 3 尝试从源代码编译 Python 2 7 6 以便与 mod wsgi 和 Apache 一起使用 根据众多答案 显然 在编译 mod wsgi 用法时 您必须使用 enable sh