Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
setuptools 82.0.1 說明文件
Logo

連結

  • Home
  • PyPI
  • 使用者指南
    • Quickstart
    • 支援的介面
    • Package Discovery and Namespace Packages
    • Setuptools 中的依賴管理
    • 開發模式(又稱「可編輯安裝」)
    • 進入點
    • Data Files Support
    • 建置擴充模組
    • Specifying Your Project's Version
    • Controlling files in the distribution
    • Caching and Troubleshooting
    • Extending or Customizing Setuptools
    • Configuring setuptools using setup.cfg files
    • Configuring setuptools using pyproject.toml files
  • 建置系統支援
  • 關鍵字
  • 使用 Setuptools 建置並散佈軟體包

專案

  • 路線圖
  • 開發指南
    • Developer's Guide for Setuptools
    • 發行過程
  • Backward compatibility & deprecated practice
    • New and Changed setup() Keywords
    • Specifying dependencies that aren't in PyPI via dependency_links
    • The Internal Structure of Python Eggs
    • Easy Install
    • Understanding the zip_safe flag
    • Automatic Resource Extraction
    • Distributing Python Modules (Legacy version)
      • 1. Distuils 介紹
      • 2. Writing the Setup Script
      • 3. Writing the Setup Configuration File
      • 4. Creating a Source Distribution
      • 5. Creating Built Distributions
      • 6. Distutils Examples
      • 7. Extending Distutils
      • 8. Command Reference
      • 9. API Reference
    • Porting from Distutils
    • "Eggsecutable" Scripts
    • Running setuptools commands
    • Package Discovery and Resource Access using pkg_resources
    • Drawbacks of installing source distributions (sdist) and how to improve reproducibility
  • History
  • Credits
  • Artwork
Back to top
View this page
Edit this page

Specifying dependencies that aren't in PyPI via dependency_links¶

警告

Dependency links support has been dropped by pip starting with version 19.0 (released 2019-01-22).

If your project depends on packages that don't exist on PyPI, you may still be able to depend on them if they are available for download as:

  • an egg, in the standard distutils sdist format,

  • a single .py file, or

  • a VCS repository (Subversion, Mercurial, or Git).

You need to add some URLs to the dependency_links argument to setup().

The URLs must be either:

  1. direct download URLs,

  2. the URLs of web pages that contain direct download links, or

  3. the repository's URL

In general, it's better to link to web pages, because it is usually less complex to update a web page than to release a new version of your project. You can also use a SourceForge showfiles.php link in the case where a package you depend on is distributed via SourceForge.

If you depend on a package that's distributed as a single .py file, you must include an "#egg=project-version" suffix to the URL, to give a project name and version number. (Be sure to escape any dashes in the name or version by replacing them with underscores.) EasyInstall will recognize this suffix and automatically create a trivial setup.py to wrap the single .py file as an egg.

In the case of a VCS checkout, you should also append #egg=project-version in order to identify for what package that checkout should be used. You can append @REV to the URL's path (before the fragment) to specify a revision. Additionally, you can also force the VCS being used by prepending the URL with a certain prefix. Currently available are:

  • svn+URL for Subversion,

  • git+URL for Git, and

  • hg+URL for Mercurial

A more complete example would be:

vcs+proto://host/path@revision#egg=project-version

Be careful with the version. It should match the one inside the project files. If you want to disregard the version, you have to omit it both in the requires and in the URL's fragment.

This will do a checkout (or a clone, in Git and Mercurial parlance) to a temporary folder and run setup.py bdist_egg.

The dependency_links option takes the form of a list of URL strings. For example, this will cause a search of the specified page for eggs or source distributions, if the package's dependencies aren't already installed:

[options]
#...
dependency_links = http://peak.telecommunity.com/snapshots/
setup(
    ...,
    dependency_links=[
        "http://peak.telecommunity.com/snapshots/",
    ],
)
Next
The Internal Structure of Python Eggs
Previous
New and Changed setup() Keywords
Copyright ©
Made with Sphinx and @pradyunsg's Furo