Django、PIP 和 Virtualenv
我有一个Django项目,我想它应该能在虚拟环境(virtualenv)中运行。我通过pip install安装了virtualenv,并创建了环境,但当我尝试使用pip要求文件时,出现了这个问题:
Directory 'tagging' is not installable. File 'setup.py' not found.
Storing complete log in /Users/XXXX/.pip/pip.log
这是日志文件中的一条记录:
------------------------------------------------------------
/Users/XXXX/Sites/SampleProject/bin/pip run on Wed Jul 21 06:35:02 2010
Directory 'tagging' is not installable. File 'setup.py' not found.
Exception information:
Traceback (most recent call last):
File "/Users/XXXX/Sites/SampleProject/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg/pip/basecommand.py", line 120, in main
self.run(options, args)
File "/Users/XXXX/Sites/SampleProject/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg/pip/commands/install.py", line 158, in run
for req in parse_requirements(filename, finder=finder, options=options):
File "/Users/XXXX/Sites/SampleProject/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg/pip/req.py", line 1395, in parse_requirements
req = InstallRequirement.from_line(line, comes_from)
File "/Users/XXXX/Sites/SampleProject/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg/pip/req.py", line 87, in from_line
% name)
InstallationError: Directory 'tagging' is not installable. File 'setup.py' not found.
另外,这是我尝试使用的要求文件:
# to use:
# mkvirtualenv %PROJECT% (or workon %PROJECT%)
# export PIP_RESPECT_VIRTUALENV=true
# pip install -r requirements.txt
# you'll also need:
# mongodb1.1.4
# imagemagick > 6.3.8
# -e svn+http://code.djangoproject.com/svn/django/trunk#egg=djangoipython
ipdb
PIL
django-extensions
django-debug-toolbar
pytz
tagging
这可能是PIP的问题吗?我通过easy_install安装了它,并且已经用它安装了一些模块,比如fabric等等,没遇到任何问题。
希望有人能帮帮我 :) 顺便说一下,这是我的本地环境:OSX 10.6.4,Python 2.6.1,Django 1.3 alpha。谢谢!
2 个回答
3
听起来你在运行pip的目录里有一个叫做tagging/的文件夹,pip以为你想安装的是这个文件夹里的东西,而不是PyPI上的django-tagging项目。但是这个文件夹里没有setup.py文件,所以pip不知道该怎么安装它。
如果你想从PyPI安装的项目名字真的是"tagging",你就需要移动或者重命名这个tagging/文件夹,或者从其他目录运行pip。但实际上你想安装的是django-tagging:http://pypi.python.org/pypi/django-tagging。所以只要把你的需求文件里的"tagging"改成"django-tagging",就应该能正常工作了。
其实这都是pip的一个小bug:它应该默认认为你输入的名字是PyPI上的项目名,而不是本地的文件夹,除非你给的名字里有斜杠或者后面加了斜杠。