代码之家  ›  专栏  ›  技术社区  ›  Luca

在python setup.py文件中的特定提交时提取git repo

  •  0
  • Luca  · 技术社区  · 7 年前

    我有一个Python项目,我正在使用 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 回复  |  直到 7 年前
        1
  •  3
  •   IMParasharG    7 年前

    你可以用 dependency_links setup.py

    dependency_links =[https://github.com/GovindParashar136/spring-boot-web-jsp/tarball/master#egg=8138cc3fd4e11bde31e9343c16c60ea539f687d9]
    

    在你的例子中,url

    https://github.com/facebookresearch/maskrcnn-benchmark/tarball/master#egg=5ec0b91cc85163ac3b58265b3f9b39bb327d0ba6
    
        2
  •  1
  •   Simon Walker    5 年前

    This answer 建议包括 package@ git url的前缀将安装指定的git提交:

    # 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",
        ],
    )