Distutils忽略Ubuntu上的build/lib [英] Distutils ignores build/lib on Ubuntu

查看:51
本文介绍了Distutils忽略Ubuntu上的build/lib的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 setup.py 脚本,该脚本构建要安装到 ./build/lib 目录的文件.这些文件由我的自定义 distutils.command.build.build 子类的 run()方法填充:

I have a setup.py script which builds files to be installed to the ./build/lib directory. The files are populated by the run() method of my custom distutils.command.build.build subclass:

from distutils.command.build import build
from distutils.core import setup

class MyBuild(build):
    def run(self):
        # Populate files to ./build/lib

setup(
    # ...
    cmdclass=dict(build=MyBuild)
)

现在,根据本文,安装脚本应复制 ./build/lib 目录中的所有内容都指向安装目录,它可以在 OSX 上正常运行,但不能在 Ubuntu 14.04 上正常运行,因为它会忽略 ./build/lib 目录,而是安装在 ./build/lib.< plat> 中找到的文件,而该文件又不能在 OSX ,其中 ./build/lib.< plat> 目录被忽略.

Now, according to this article the setup script should copy everything in the ./build/lib directory to the installation directory, which works as expected on OSX but not on Ubuntu 14.04 where it ignores the ./build/lib directory but rather installs files found in ./build/lib.<plat>, which in turn doesn't work on OSX where the ./build/lib.<plat> directory is ignored.

是否存在一致的,独立于平台的方式来使用 distutils 来构建和安装文件?这些文件与平台无关.

Is there a consistent, platform independent way to build and install files with distutils? The files are platform-independent.

推荐答案

MyBuild.run()方法中,将文件填充到 self.build_lib 中指定的路径中而不是硬编码的路径.

In the MyBuild.run() method, populate files to the path given in self.build_lib instead of a hardcoded path.

from distutils.command.build import build
from distutils.core import setup

class MyBuild(build):
    def run(self):
        build_path = self.build_lib
        # Populate files to 'build_path'

setup(
    # ...
    cmdclass=dict(build=MyBuild)
)

请勿更改 MyBuild.run()中的 self.build_lib 的值,因为它是由命令行参数和/或各种默认值生成的.其他一些属性也是如此,例如 build_scripts build_base build_purelib 等.

Do not change the value of self.build_lib in MyBuild.run() as it is generated from command line arguments and/or various default values. The same goes for several other attributes such as build_scripts, build_base, build_purelib, etc.

这篇关于Distutils忽略Ubuntu上的build/lib的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆