Django、PIP 和 Virtualenv

2 投票
2 回答
3719 浏览
提问于 2025-04-16 01:36

我有一个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 个回答

1

你是不是从这个 地址 复制了“tagging”文件夹?如果是这样的话,其实你需要的是这个 地址 的根目录,这里面有一个“tagging”子文件夹,还有一个setup.py文件。你可以直接从主目录下载,或者解压到一个叫“django-tagging”的文件夹里,并确保你的需求文件指向这个“django-tagging”文件夹。

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上的项目名,而不是本地的文件夹,除非你给的名字里有斜杠或者后面加了斜杠。

撰写回答