2014-07-08 58 views
1

在Ruby中,當我同時開發一個庫和一個應用程序時,我可以使用Bundler的本地覆蓋功能使應用程序使用我的本地庫副本,而不是嘗試從Github在我的系統上。這非常方便。Pip等價於Bundler本地覆蓋

# Given my application's Gemfile with this one line... 
gem 'mylib', :github => 'smackesey/mylib', :branch => 'master' 

# I can run this once in my shell... 
bundle config local.mylib /path/to/mylib 

# And now on my system, the app will use the copy at /path/to/my/lib 

我現在在Python中面臨類似的情況。 requirements.txt實質上等同於Gemfile,但是pip是否支持本地覆蓋功能?

回答

2

您可以使用pip install -e git+ssh://...#egg=package-name(此處替代your repository URL)安裝庫的可編輯版本。這將創建一個你的庫的簽出並將其放入python模塊搜索路徑。如果您已經擁有該庫的本地副本,則執行pip install -e /path/to/your/checkout也會執行相同的操作。如果已安裝庫的不可編輯版本,則可能需要將--upgrade傳遞給點。

在幕後,pip將在您的site-packages目錄中創建一個名爲easy-install.pth的文件,然後該文件包含一行,其中包含您的圖書館結帳的完整路徑。您可以閱讀更多關於.pth文件in the official Python documentation;有關更多點的選項,請參閱the official pip documentationhere是關於editable installs的部分。

+0

謝謝 - 這是一個很好的答案。完成工作。 –