从GitHub仓库伪造buildout中的egg
我想在我正在做的Django项目中试试这个中间件:https://github.com/directeur/django-pdf。它叫做“django-pdf”,但和这个链接中的内容https://pypi.python.org/pypi/django-pdf/1.0.2不一样。很遗憾,Directeur的django-pdf也不是很简单就能使用的:它没有setup.py或requirements.txt这些文件。
请问有没有什么方法或者工具可以把这个包安装到Django的路径中,还是说我必须要复制这个代码库并添加一个setup.py文件呢?
这是我现在的开发配置文件buildout.cfg:
[buildout]
parts =
python
django
django-nose
pyflakes
show-picked-versions = true
develop = .
eggs = django-core7
versions = versions
[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}
[django]
recipe = djangorecipe
project = core7
projectegg = core7
settings = development
test = core7
eggs =
${buildout:eggs}
${django-nose:eggs}
django_pdb
extra-paths = ${buildout:sources-dir}
[django-nose]
recipe = zc.recipe.egg
eggs =
django-nose
coverage
# Make this a separate part so it doesn't get included in Django's path.
[pyflakes]
recipe = zc.recipe.egg
eggs = pyflakes
[versions]
django = 1.5
1 个回答
1
根据我的理解,buildout 很依赖 setuptools(或者至少需要一个 setup.py 文件)。没有这个文件,buildout 就没法生成一个可分发的包(也就是一个 egg)。幸运的是,GitHub 让你很方便地复制一个仓库,这样你就可以添加一个 setup.py 文件了。你可能还想考虑提供一个补丁。
据我所知,没有任何配方可以让你在没有 setup.py 的情况下添加项目。这样的项目听起来像是个反模式,因为这会打破项目需要 setup.py 的“约定”。
第一个选项似乎更好。当你的项目在 GitHub 上时,你可以使用 mr.develop 来引入你的依赖。