9

我正在运行 Linux,并且已经下载了一个我必须安装的 python 模块,除了我的特定 /home/user 目录之外,我不能访问任何其他目录(我没有 root 权限,也没有追求它们的选项)。

这当然需要 Python 源代码。我已经下载并放置在所述用户目录中。

虽然要求管理员将正确的文件复制到 /usr/include/python2.7 是解决此问题的最简单方法,但我希望为此类问题提供更通用和可移植的解决方案。

仅更改模块源中的数据(MANIFEST.in、README.txt、setup.py 等),如何将任意目录添加到 Python.h 和朋友的搜索路径?

(如果没有解决方案,“python setup.py build”将继续返回“Python.h:没有这样的文件或目录”错误)

非常感谢。

4

1 回答 1

9

为了构建已编译的包,您需要告诉配置步骤setup.py在不同的位置查找包含文件。我相信这可以这样做:

python setup.py config --with-includepath=/path/to/your/install/of/python/includes/

您可能还需要告知setup.py其他文件(例如库)的位置,在这种情况下,请查看:

python setup.py config --help

并查看--libraries--library-dirs选项。要更改生成的软件包的安装位置,请在构建后使用前缀选项,例如:

python setup.py install --prefix=/path/to/install/to/

尽管您需要的选项的确切组合可能取决于您正在安装的软件包。如果您需要经常这样做,我认为可以通过指定setup.cfg配置文件来完成,如此所述。

于 2012-06-02T06:28:58.683 回答