2012-01-14 35 views
32

我收到以下错误与命令:PIP冻结> requirements.txt错误

$pip freeze > requirements.txt 
Warning: cannot find svn location for distribute==0.6.16dev-r0 

这是事先我requirements.txt文件:

Django==1.3 
django-registration==0.7 

回答

38

首先,我要指出,不是一个错误,而是一个警告(虽然它是一个严重的)。

这似乎是一个开放的问题点,在这个判断github存储库。当pip安装某个不是SVN的存储库上的开发版本时,会出现问题。一个例子是发行提供:

mkvirtualenv test --no-site-packages 
workon test 
pip install flask==dev 
pip freeze > requirements.txt 

它将打印此结果到标准错误:

Warning: cannot find svn location for Flask==0.9-devdev-20120114 

但文件仍会有:

## FIXME: could not find svn URL in dependency_links for this package: 
Flask==0.9-devdev-20120114 
Jinja2==2.6 
Werkzeug==0.8.2 
wsgiref==0.1.2 

不过,我不会能够将来使用这个文件来安装Flask。在这里看到:

mkvirtualenv test2 --no-site-packages 
workon test2 
pip install -r requirements.txt 

将输出错误:

Downloading/unpacking Flask==0.9-devdev-20120114 (from -r requirements.txt (line 2)) 
Could not find a version that satisfies the requirement Flask==0.9-devdev-20120114 (from -r requirements.txt (line 2)) (from versions:) 
No distributions matching the version for Flask==0.9-devdev-20120114 (from -r requirements.txt (line 2)) 
Storing complete log in /Users/dgrtwo/.pip/pip.log 
+3

好吧,这是伟大的..所以有什么解决方案? – abbood 2015-03-26 07:10:30

1

我遇到试图创建一个Django项目,并在Heroku上部署了同样的问题。我认为这个问题与django的多个副本有关。删除django位于

/usr/local/lib/python2.7/dist-packages/django 

并且重新安装似乎解决了问题。我能够在没有警告的情况下创建requirements.txt

20
sudo pip install --upgrade distribute 
+5

你能解释一下这里发生了什么吗? – 2014-10-29 23:12:16

+1

此问题是分发包中的一个错误,因此当您升级它时,就解决了这个问题。 – 2015-09-05 12:38:04

+0

也请检查(并upvote)MikeTwo的答案:http://stackoverflow.com/a/28596824/342293 – Ron 2015-09-06 02:42:13

3

没有足够的代表处发表评论,但sudo pip install --upgrade distribute borked我的点子安装。 Pip版本1.4.1。运行该命令后,pip freeze会给出一个AssertionError。

该解决方法是sudo pip install setuptools==7.0

两个解决方案相结合固定SVN URL警告。

0

Ron的想法让我的pip安装也一样,而MikeTwo的解决方案没有解决它。

我结束了删除点和重新安装,如发现here(UzLA的评论)。删除包:

sudo apt-get remove --auto-remove python-pip 

下载官方PIP安装程序:

wget https://bootstrap.pypa.io/get-pip.py 

安装:

sudo python get-pip.py 

pip freeze在此之后工作正常。它确实给了SNIMissingWarningInsecurePlatformWarning,见the docs,但这不是问题。

注意:此修补程序的源代码有第4步,设置从/ usr/local/bin/pip到/ usr/bin的符号链接。这可能没有必要。尝试stat /usr/local/bin/pip。这应该报告一个常规文件,大小为200字节左右。你可以less /usr/local/bin/pip看看里面有什么。然后执行echo $PATH来检查/usr/local/bin是否在那里。如果是,则不需要符号链接。

相关问题