我有一个Python项目,正在使用来自Facebook研究的maskrcnn_benchmark
项目。
在我的持续集成脚本中,我创建一个虚拟环境,并通过以下步骤在其中安装该项目:
- git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
- cd maskrcnn-benchmark
- git reset --hard 5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6
- python setup.py build develop
这可以正常工作,并根据需要将所有内容安装在虚拟环境中。
现在我的项目中有一个setup.py
,用于打包和部署我的应用程序。如何在此setup.py
文件中执行相同的操作,即从特定的提交哈希中提取并构建此存储库?
由于下面的答案和评论,我现在具有setup.py:
install_requires=[
'5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6-0.1',
'ninja',
'yacs',
'matplotlib',
'cython==0.28.5',
'pymongo==3.7.1',
'scipy==1.1.0',
'torch==1.0.0',
'torchvision==0.2.1',
'opencv_python==3.4.2.17',
'numpy==1.15.1',
'gputil==1.3.0',
'scikit_learn==0.19.2',
'scikit_image==0.14.0',
'sk_video==1.1.10'
],
dependency_links=[
'http://github.com/facebookresearch/maskrcnn-benchmark/tarball/master#egg=5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6-0.1'
],
无论我将'5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6-0.1'
放在哪里,都将首先编译maskrcnn-benchmark
项目。我该怎么办,依赖项和此软件包最后安装?
答案 0 :(得分:3)
您可以使用dependency_links
setup.py
即
dependency_links =[https://github.com/GovindParashar136/spring-boot-web-jsp/tarball/master#egg=8138cc3fd4e11bde31e9343c16c60ea539f687d9]
您的网址
https://github.com/facebookresearch/maskrcnn-benchmark/tarball/master#egg=5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6
答案 1 :(得分:0)
This answer建议在git网址中包含package@
前缀将安装指定的git commit:
# in setup.py
setup(
# other fields
install_requires=[
"packagename@git+https://github.com/<user>/<repo>#<commit hash>",
],
)
所以在您的情况下:
# in setup.py
setup(
# other fields
install_requires=[
"maskrcnn_benchmark@git+https://github.com/facebookresearch/maskrcnn-benchmark.git#5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6",
],
)