Distutils忽略Ubuntu上的build/lib [英] Distutils ignores build/lib on Ubuntu
问题描述
我有一个 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屋!