在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
是否支持本地覆盖功能?
答案 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 documentation,here是关于editable installs的部分。