当前位置: 首页 > 面试题库 >

是否可以在setup.py中表达特定于平台的依赖关系而无需构建我的egg的特定于平台的版本?

丁绪
2023-03-14
问题内容

我们有一个占位符鸡蛋,其中不包含任何代码,并且仅存在是为了从我们的PyPi存储库中提取依赖包列表。

这些依赖程序包大多数与平台无关,但是有些仅在Win32平台上使用。

是否有可能使依赖关系成为平台条件,以便install_requires仅在Win32上安装时下拉列表中的给定依赖关系?

替代方案: 是否可以指定可选依赖项列表,如果可用,将安装这些依赖项,但如果不存在,则不会导致easy_install失败?


问题答案:

使用extras_require分发选项使“ win32支持”成为可选功能:

setup(
  ...
  extras_require={
    'win32': 'pywin32'
  },
  ...
)

然后在Windows上安装时指定win32功能:

easy_install mypackage[win32]

这将拉下该pywin32软件包,该软件包被列为mypackage的“ win32”功能的依赖项。

有关可选功能的更多信息,请参见此处。



 类似资料:
  • 问题内容: Node.JS中是否有一个常量,用于换行符,该换行符特定于应用程序运行所在的平台? 例如: 视窗: nix: 问题答案: 不确定在0.8.x中是否是新功能,但是现在有一个常量http://nodejs.org/api/os.html#os_os_eol

  • 问题内容: 我正在使用其中包含一些自定义安装命令的python2软件包。这些命令实际上构建了一些Rust代码,并输出了一些移入python包的文件。 重要的一点是,Rust代码在python包之外。 应该自动检测python软件包是纯python还是平台特定的(例如,如果它包含某些C扩展名)。就我而言,当我跑步时,生成的车轮被标记为纯python车轮:。这是有问题的,因为我需要在不同的平台上运行此

  • Microsoft Windows Apache的使用 此文阐述如何在Windows平台上安装、配置和运行Apache2.0 参见:在Microsoft Windows上使用Apache 编译Apache 此文会指出在Windows平台上编译Apache以前必须了解的许多要点。 参见:在Microsoft Windows平台上编译Apache 其他平台 Novell NetWare 此文阐述如何在

  • 我试图使用xamarin表单开发特定的应用程序,但我希望支持特定的平台版本,如android V6+和iOS10。 如何做到这一点?有什么定制控件可以做到这一点吗?或者任何选择?谢谢

  • 问题内容: 具体来说,我运行插件来生成文件。这仅在Windows上有效,因此我想知道是否可以在其他平台上“退出”此步骤? 插件被绑定到执行阶段,就像这样 问题答案: 您可以将该插件包装在单独的构建配置文件下,然后在所需的构建上启用该配置文件 例如: 现在在启动Maven时传递参数以指定配置文件 例如:

  • 问题内容: 我希望有可能在myModuleA中使用Guava-19,在myModuleB中使用guava-20, 因为拼图模块具有自己的类路径。 假设myModuleA使用Iterators.emptyIterator(); -已在guava-20中删除,而myModuleB使用新的静态方法FluentIterable.of(); -番石榴19中没有。不幸的是,我的测试是否定的。在编译时,看起来不