2013-01-04 206 views
30

我找不到使用pip将本地目录安装为python包的正确方法。pip安装本地git存储库

(venv) C:\(...)>pip install . --no-index 
Ignoring indexes: http://pypi.python.org/simple/ 
Unpacking c:\users\fsantos\desktop\biskates.com\biskates\forks\django-pipeline 
    Running setup.py egg_info for package from file:///(...)%5Cforks%5Cdjango-pipeline 

Installing collected packages: django-pipeline 
    Running setup.py install for django-pipeline 

Successfully installed django-pipeline 
Cleaning up... 

(venv) C:\(...)>cd .. 
(venv) C:\(...)>python 
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pipeline 
>>> pipeline.__file__ 
'C:\\(...)site-packages\\pipeline\\__init__.py' 
>>> 

正如你可以看到pip只是复制到包到站点包。我怎样才能避免这种情况,并直接从它的源文件夹中使用包?

我试图将django-pipeline集成到我的Django项目中,但我想首先添加对Django 1.4的支持,所以我分叉并克隆了我的fork。

回答

5

pip通过将软件包安装到您的site-packages来工作。如果您只是想定期更换模块import,您只需将目录路径添加到PYTHONPATH环境变量中即可。

+0

虽然不是如果包的setup.py包括需要扩展编译 –

65

我也可以只使用:

cd your-local-repo 
pip install -e . 

python setup.py install develop 
+1

我的目的是只是为了发展,这是一个相当不错的答案。这应该也适用于virtualenv中的requirements.txt。 –

+0

真棒解决方案!然后,如何将更改合并到主库时卸载? – ken

+1

pip卸载your-local-repo-egg – silviomoreto

49

如果你在一个VENV工作,你可以这样做:

ENV /斌/ PIP安装的git + file:/// path/to/your/git/repo

或分支:

ENV /斌/ PIP安装的git +文件:///路径/到/你/的git /回购@ mybranch

+1

问题是关于安装一个实际的目录(因为我正在开发两个非常密切相关的项目,并且我想在调试时对这两个项目进行编码),但这很好地提醒您可以做些什么完成了! –