【问题标题】:What is python-dev package used forpython-dev 包是做什么用的
【发布时间】:2015-09-09 05:04:32
【问题描述】:

我最近安装了lxml

在此之前,我必须为此安装所有依赖项。 所以我尝试安装liblxml2-devliblxslt1-devpython-dev (谷歌搜索lxml需要哪些包) 但即使在那之后,我也无法使用命令安装lxml pip install lxml.

但是因为我使用的是 Python 3.4.0,所以我认为python-dev 可能有不同的版本(由于面临一些类似的版本冲突问题而想到)。所以我尝试安装python3-dev

然后我尝试使用前面说的相同命令安装lxml,并且成功了!!!

我用谷歌搜索了这些句子 我可以理解lxmlxslt的含义。我为python-dev 找到了link,但我仍然不确定它实际上在做什么。

操作系统 - Ubuntu

【问题讨论】:

  • 不同平台有不同的约定;问题应该提到您使用的是哪个操作系统(我猜是 Debian Linux 或类似 Ubuntu 或 Mint 的衍生产品,尽管基于 RPM 的发行版有类似的安排,带有单独的 -dev 包头文件)。

标签: python header-files cpython


【解决方案1】:

python 开发

python-dev 包含头文件,您需要构建Python 扩展

lxml

lxml 是一个 Python C-API 扩展,在您执行 pip install lxml 时编译。 lxml 源代码中至少有类似#include <Python.h> 的内容。编译器会在编译过程中查找 头文件 Python.h,因此这些头文件需要在您的系统上才能找到。

-dev Linux 上的包

通常在 Linux 上,二进制库Python 等软件包的头文件 是分开的。因此,您可以安装 Python(例如包 python)并且一切正常。但是当你想构建extensions时你需要安装对应的-dev包。

【讨论】:

  • 你说要构建扩展需要安装相应的开发包。你能解释一下吗?头文件如何构建扩展
  • 构建扩展时需要头文件。扩展源代码引用了它使用的库的头文件。构建 Python 扩展时,它使用包含 Python API C 函数和数据结构的 Python 共享库。这不仅适用于 Python,而且适用于您安装在系统上的几乎所有库和应用程序。每当您编写使用库 API 的程序时,您都需要相应的开发包来构建您的程序。
  • 是的,在 Windows 上是类似的。通常库提供包含头文件的 SDK 包(zip 或安装程序)。当你为 Python 构建扩展时,它们通常是使用 Visual Studio 工具编译的,VS 项目文件需要引用这些头文件。
【解决方案2】:

python-dev 是包含 Python C API 头文件的包,lxml 使用它,因为它包含 Python C 扩展以实现高性能。

【讨论】:

    【解决方案3】:

    python-dev 包含编译 python 扩展模块 (https://docs.python.org/2/extending/extending.html) 所需的一切。

    请注意,Debian 已经有一个用于 python 3 的 lxml 包(在http://lxml.de/installation.html 中提到);一般来说,使用打包版本是个好主意。我建议pip uninstall lxml 然后apt-get install python3-lxml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 2020-03-02
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 2012-10-04
      • 2011-04-18
      相关资源
      最近更新 更多