我正在尝试使用以下指南为 Django 1.4 项目创建开发环境:

http://www.stereoplex.com/blog/a-django-development-environment-with-zc-buildout

virtualenv 部分指南运行正常,输出如下:

virtualenv project
New python executable in project\Scripts\python.exe
Installing setuptools................done.
Installing pip...................done.

之后我就可以激活开发环境了。现在我创建名为 Source 的目录,将 bootstrap.py 下载到它并创建一个 buildout.cfg 包含以下内容:
[buildout]
parts =

并运行 bootstrap.py 以获得以下结果:
Creating directory 'C:\\Dropbox\\XYZ\\project\\Source\\bin'.
Creating directory 'C:\\Dropbox\\XYZ\\project\\Source\\parts'.
Creating directory 'C:\\Dropbox\\XYZ\\project\\Source\\eggs'.
Creating directory 'C:\\Dropbox\\XYZ\\project\\Source\\develop-eggs'.
Generated script 'C:\\Dropbox\\XYZ\\project\\Source\\bin\\buildout'.

问题部分来了 - 安装 Django 我将 buildout.cfg 配置为以下内容并运行由 bootstrap 创建的 bin\buildout:
[buildout]
parts = django

[django]
recipe = djangorecipe
version = 1.4

运行 bin\buildout 后,我​​收到以下错误:
(project) C:\Dropbox\XYZ\project\Source>bin\buildout.exe
Traceback (most recent call last):

File "C:\Dropbox\XYZ\project\Source\bin\buildout-script.py", line 15, in <module>                                                                               import site # imports custom buildout-generated site.py

File "C:\Dropbox\XYZ\project\Source\parts\buildout\site.py", line 601, in <module>                                                                              main()

File "C:\Dropbox\XYZ\project\Source\parts\buildout\site.py", line 584, in main                                                                                  known_paths = addsitepackages(known_paths)

File "C:\Dropbox\XYZ\project\Source\parts\buildout\site.py", line 328, in addsitepackages                                                                       import pkg_resources

ImportError: No module named pkg_resources

虽然如果我直接在项目环境中运行 python 我可以导入 pkg_resources 没有错误:
(project) C:\Dropbox\XYZ\project\Source>python
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32                                                                              Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
>>> pkg_resources
<module 'pkg_resources' from 'C:\Dropbox\XYZ\project\lib\site-packages\setuptools-0.6c11-py2.7.egg\pkg_resources.py'>

我完全被震撼到了。有什么建议么?

最佳答案

我没有明确的答案,但这里有一些头脑 Storm 的想法:

  • 为什么是 virtualenv? Buildout 本身提供隔离,因此不需要 virtualenv。您可以仅使用 bootstrap.py 和 buildout.cfg 重新尝试吗?所以只用你的系统 python 运行 bootstrap.py ?
  • 您是否在全局范围内安装了 buildout?他们可以干涉。
  • 在某些情况下,最新的 1.5.2 构建版本在 site.py 文件中存在一些问题,这可能是它在 virtualenv 中失败的原因。你能试试 http://pypi.python.org/pypi/zc.buildout/1.5.2#system-python-and-zc-buildout-1-5 中提到的特殊 1.4.4 bootstrap 吗?
  • bin/buildout -vvv 为您提供更多调试信息。

  • 附加注释:djangorecipe 中的 version 设置在 djangorecipe 的最新版本中已弃用。你可以删除它。如果你想固定 Django,你必须将它固定在你的 buildout 的 [version] 列表中。

    关于带有 zc.buildout 的 Django 1.4 开发环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10314040/

    10-11 15:43