我有一个setup.py
脚本,用于构建要安装到该./build/lib
目录的文件。这些文件由run()
我的自定义distutils.command.build.build
子类的方法填充:
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上正常工作,在Ubuntu 14.04上,该./build/lib
目录会忽略该目录,但会安装在中找到的文件./build/lib.<plat>
,而该文件却无法正常工作在OSX上,其中./build/lib.<plat>
目录被忽略。
是否有一致的,独立于平台的方式来使用distutils构建和安装文件?这些文件与平台无关。
在该MyBuild.run()
方法中,将文件填充到给定的路径中,self.build_lib
而不是硬编码的路径中。
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)
)
不要更改self.build_lib
in的值,MyBuild.run()
因为它是从命令行参数和/或各种默认值生成的。这同样适用于其他几个属性,如build_scripts
,build_base
,build_purelib
,等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句