Python 如何为依赖于pypi之外的包的程序编写setup.py

Python 如何为依赖于pypi之外的包的程序编写setup.py,python,setuptools,Python,Setuptools,例如,如果PIL、pythonrsvg和libev3是程序的依赖项,该怎么办?这些依赖项不在pypi索引中,后两个是Debian软件包名称。简单地说,不要将它们放在依赖项中,并将其记录在安装或自述文件中。简单地说,不要将它们放在依赖项中,并将其记录在安装或自述文件中。如果您正在打包要在Debian上安装的内容(如暗示的那样),管理依赖关系的最佳方法是将程序打包为.deb,并用Debian方式表示依赖关系。(注意,PIL在Debian中可用作python imaging)如果您正在打包要在Debi

例如,如果
PIL
pythonrsvg
libev3
是程序的依赖项,该怎么办?这些依赖项不在pypi索引中,后两个是Debian软件包名称。

简单地说,不要将它们放在依赖项中,并将其记录在安装或自述文件中。

简单地说,不要将它们放在依赖项中,并将其记录在安装或自述文件中。

如果您正在打包要在Debian上安装的内容(如暗示的那样),管理依赖关系的最佳方法是将程序打包为.deb,并用Debian方式表示依赖关系。(注意,PIL在Debian中可用作
python imaging

如果您正在打包要在Debian上安装的东西(如所暗示的),管理依赖关系的最佳方法是将程序打包为.deb并用Debian的方式表示依赖关系。(注意,PIL在Debian中作为
python imaging
提供)

由于setup.py也是python代码,您可以在这些软件包上下载并运行setup.py。

由于setup.py也是python代码,您可以在这些软件包上下载并运行setup.py。

您可以使用setuptools。setuptools允许您添加任何类型的可安装Python(任何distutils/setuptools启用的包)作为依赖项,无论它是否在PyPI上

例如,要依赖PIL 1.1.6,请使用以下内容:

setup(...,
      install_requires = ["http://effbot.org/downloads/Imaging-1.1.6.tar.gz"],
      ...)

有关更多信息,请参阅文档。

您可以使用设置工具。setuptools允许您添加任何类型的可安装Python(任何distutils/setuptools启用的包)作为依赖项,无论它是否在PyPI上

例如,要依赖PIL 1.1.6,请使用以下内容:

setup(...,
      install_requires = ["http://effbot.org/downloads/Imaging-1.1.6.tar.gz"],
      ...)

有关更多信息,请参阅文档。

PIL将如何处理非python软件包的依赖项?setuptools只会像往常一样运行“setup.py install”,任何依赖项处理都是按照映像默认过程进行的,因此,如果Imaging正确地进行,那么您就可以正确地安装PIL。除此之外,您没有什么好的选择:1)通知用户必须使用发行版默认过程安装哪些“本机”软件包,2)创建发行版本机软件包并设置依赖项(最糟糕的是发行版太多)。PIL将如何处理非python软件包的依赖项?setuptools只会像往常一样运行“setup.py install”,任何依赖项处理都是按照映像默认过程进行的,因此,如果映像操作正确,您将正确安装PIL。除此之外,您几乎没有什么好的选择:1)通知用户必须使用发行版默认过程安装哪些“本机”软件包,2)创建发行版本机软件包并设置依赖项(最糟糕的是发行版太多了)。