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

为python包创建setup.py文件时如何指定依赖项

拓拔嘉颖
2023-03-14
问题内容

在“撰写设置脚本(http://docs.python.org/2/distutils/setupscript.html)”的python文档中提到可以在本节中指定依赖项

> 2.4。发行与包装之间的关系

[…]可以使用distutils.core.setup()函数的关键字参数来指定这些关系。

可以通过向setup()提供require关键字参数来指定对其他Python模块和软件包的依赖关系。该值必须是字符串列表。每个字符串指定所需的程序包,以及可选的版本。

要指定需要任何版本的模块或软件包,该字符串应完全由模块或软件包名称组成。示例包括“ mymodule”和“ xml.parsers.expat”。

[…]

在没有示例的情况下,给出了相当少的信息,我只想确保我做对了。另外,我requires在API说明http://docs.python.org/2/distutils/apiref.html#distutils.core.setup中找不到此参数

这样做是不是这样,例如,

setup(name='MyStuff',
      version='1.0',
      requires='os, sys, progressbar',
      [...]

希望有人能给我更多的见识!谢谢!

编辑:

为了解决distutils.core,setuptools的争议,只需执行以下操作即可

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

是否有意义?


问题答案:

忽略distutils。如果要创建一个程序包,该程序包指定要依赖的工具(如pip外出并为您查找),则需要以setup.pyoff为基础setuptools

setuptools依赖项在中列出install_requires,其中包含一个列表:

setup(name='MyStuff',
      version='1.0',
      install_requires=['progressbar'],
      # ...
)

应该是他们自己的发行。os并且sys是Python随附的模块, 因此不应列出



 类似资料:
  • 问题内容: 我正在尝试为我的包裹写东西。我的程序包需要指定对另一个git repo的依赖。 这是我到目前为止所拥有的: 当我跑步时: 我懂了 找不到满足SomePrivateLib> = 0.1.0要求的版本(来自分析)(来自版本:)找不到SomePrivateLib> = 0.1.0(来自分析)的匹配分布 我究竟做错了什么 ? 问题答案: 您可以在此处找到正确的方法。 关键不是提供指向git存储

  • 问题内容: 我有一个应用程序,该应用程序具有package.json文件中依赖项下指定的第三方模块(例如“ express”)的通常依赖项。例如 我想模块化地构建自己的代码,并通过package.json安装一组本地(即我当前所在的文件系统上的)模块。我知道我可以通过运行以下命令安装本地模块: 但是,我不知道如何通过package.json依赖项结构来实现这一点。在此命令中使用该选项只是将其放入我

  • 我正在使用Nuget创建包。我想创建一个包,该包不包含任何其他NuGet包的依赖项(在文件中)。我的项目确实在其文件中定义了NuGet包依赖项。 首先创建文件... 我将生成的文件编辑为最小,没有依赖项。 然后我构建了解决方案并创建了一个NuGet包... 下面是该命令的输出... 创建的包包含一个文件,但它包含一个依赖项节,而我在原始文件中没有这个节... 我相信这是因为...(来自上面的输出)

  • 我有一个应用程序,它对第三方模块(例如,'express')有一组通常的依赖关系,这些依赖关系在package.json文件的依赖关系下指定。例如。 我希望模块化地构造自己的代码,并让package.json安装一组本地(即我当前所在的文件系统)模块。我知道可以通过运行以下操作来安装本地模块: 但是,我不知道如何通过package.json依赖项结构实现这一点。在该命令中使用选项只是将放入my p

  • 我已经创建了一个包,通过导入其他程序员的代码来供他们使用。我的程序使用其他jar文件进行XML解析,我不想让其他人担心依赖关系,什么是确保我的jar文件总是获得它的依赖关系的最佳方法? 是否应在原始JAR中包含依赖项? 有其他方法吗?

  • 问题内容: 我正在创建 setup.py 来分发我的应用程序。该应用程序具有许多可通过pip安装的依赖项,还具有一些无法从PyPI安装的自定义依赖项。 因此,我创建了一个将包含在发行版中的,并且必须在 setup.py 从安装了所有内容之后作为依赖项进行安装。 想象以下应用程序结构: 我怎么做? 问题答案: 可能但不确定应使用哪个setuptools版本。脚步: 在setup.py中 重要的是您的