This answer幫助我解決了你正在談論的同一問題。
似乎沒有一種簡單的方法讓setup.py直接使用需求文件來定義它的依賴關係,但是可以將相同的信息放入setup.py本身。
我有這個requirements.txt:
PIL
-e git://github.com/gabrielgrant/django-ckeditor.git#egg=django-ckeditor
但安裝該requirements.txt的含包時,要求由PIP忽略。
這setup.py似乎強迫PIP進入安裝依賴關係(包括Django的CKEditor的我github上的版本):
from setuptools import setup
setup(
name='django-articles',
...,
install_requires=[
'PIL',
'django-ckeditor>=0.9.3',
],
dependency_links = [
'http://github.com/gabrielgrant/django-ckeditor/tarball/master#egg=django-ckeditor-0.9.3',
]
)
編輯:
This answer還包含了一些有用的信息。
需要指定版本作爲「#egg = ...」的一部分,以確定該鏈接上的哪個版本的軟件包可用。
但是請注意,如果你總是希望依靠你的最新版本,您可以設置install_requires的版本
dev
,dependency_links和其他包的setup.py
編輯:使用dev
作爲版本ISN根據下面的評論,這不是一個好主意。
與「開發」的伎倆只適用於第一次,而不是隨後的時間。 setup.py只檢查「dev」字符串作爲自己的版本 – DanEEStar 2012-07-05 15:39:17
@DanEEStar沒錯。一旦安裝了包的_dev_版本'setuptools'就會考慮滿足要求。正如在[鏈接的答案](http://stackoverflow.com/a/2163919/396967)中所演示的那樣,您需要同步更新*全部3個地方中的軟件包版本*:依賴項的'setup.py'和'install_requires'和'dependency_links' - 不太實際。 – kynan 2012-12-17 02:11:05
是的@DanEEStar你是對的。我已經編輯出使用'dev'版本的建議。謝謝你們兩位! – 2013-02-21 18:28:06