2012-11-26 65 views
30

我有一個Git倉庫有很多文件夾,其中之一是一個Python模塊安裝有點子,就像這樣:如何使用pip從git子目錄安裝?

repo.git/ 
repo.git/folder1/ 
repo.git/folder2/ 
repo.git/mymodule/ 
repo.git/mymodule/__init__.py 
repo.git/mymodule/setup.py 
repo.git/mymodule/... 

現在我必須做以下安裝:

git clone http://server/repo.git 
cd repo 
pip install mymodule 
cd .. 
rm -rf repo 

沒有明確的克隆,是否可以直接用pip安裝模塊?

我想:

pip install git+https://server/repo.git/mymodule/ 
pip install git+https://server/repo.git:mymodule/ 

,但我得到:

IOError: [Errno 2] No such file or directory: '/tmp/pip-88tlLm-build/setup.py' 
+1

此問題似乎已經得到解答:http://stackoverflow.com/questions/10847764/pip-install-from-git-repo – synthesizerpatel

+0

您鏈接的問題是關於丟失的文件,因爲沒有MANIFEST.in。我的問題是關於如何使用pip安裝子目錄,因爲我可以通過克隆整個回購來安裝軟件包,所以沒有文件丟失。 –

+0

@synthesizerpatel您鏈接的問題詢問不同的事情,但標題誤導,所以我糾正了它。你可以考慮刪除你的(我猜)downvote。 –

回答

45

沒有關於此功能的pull request,它似乎已經合併到開發分支一個月前。語法是following

pip install -e git+https://git.repo/some_repo.git#egg=version_subpkg&subdirectory=repo # install a python package from a repo subdirectory 

我們可能還要等待一段時間,直到它被合併,以掌握和分佈。

+0

感謝您的更新! –

+3

我剛剛查過,它是2014年1月1日發佈的pip v1.5的一部分:https://github.com/pypa/pip/blob/develop/CHANGES.txt – tomka

+1

[特定更新日誌條目](https:// github .com/pypa/pip/blob/54de36d9aee18b23379cd417dcc6ede3c0d93f96/CHANGES.txt#L57)在pip v1.5中合併此功能。 –