如何编写setup.py拉取非Python GitHub仓库并放入正确目录?
有没有办法创建一个setup.py文件,来:
- 从github上获取一个代码库
- 把这个代码库里的文件放到指定的文件夹里
我正在设置一个django的包/应用,它需要使用一些在github上可以找到的第三方JavaScript框架。我希望setup.py能够从github上拉取最新版本的文件,然后把这些文件放到合适的static/js文件夹里。所以这和普通的依赖项不同,普通的依赖项是有自己setup.py文件的Python包。
2 个回答
2
另一种方法是提供一个叫做 requirements.txt 的文件,这个文件可以和 pip
一起使用。你可以在这个文件里指定 git 和 mercurial 的代码库,还有来自 PyPI 的软件包。这样,用户只需要运行 pip install -r requirements.txt
就能一次性安装整个项目需要的所有东西。
2
如果你在使用setuptools(setup.py),可以使用依赖要求:
https://stackoverflow.com/a/3481388/496445
否则,正如评论中提到的,建议把你的django项目设置成一个真正的git仓库,然后把github的仓库作为一个子模块添加进去。
cd myProject
git init
git submodule add git://path/to/repo.git local/location/repo
这样你就可以进入那个子模块,然后使用git pull
命令来更新了。
如果你不想把项目设置成git仓库,那么比较直接的方法就是手动克隆你想要的github仓库,然后在你的setup.py中添加一些手动命令。
import os
os.system("cd path/to/repo && git pull")