Pip等效于Bundler Local Override

时间:2014-07-08 01:09:39

标签: python pip

在Ruby中,当我同时开发库和应用程序时,我可以使用Bundler的本地覆盖功能使应用程序使用我的本地库副本而不是尝试从Github上获取我的系统。这很方便。

# 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是否支持本地覆盖功能?

1 个答案:

答案 0 :(得分:2)

您可以使用pip install -e git+ssh://...#egg=package-name安装图书馆的可编辑版本(在此处替换your repository URL)。这将创建一个库的结帐并将其放入python模块搜索路径。如果您已经拥有该库的本地副本,则执行pip install -e /path/to/your/checkout也会执行相同的操作。如果您的库已安装了不可编辑的版本,则可能需要将--upgrade传递给pip。

在幕后,pip将在您的easy-install.pth目录中创建一个名为site-packages的文件,该文件中包含一条包含结帐库完整路径的行。您可以详细了解.pth个文件in the official Python documentation;有关更多点子选项,请参阅the official pip documentationhere是关于editable installs的部分。