3

我正在尝试使用以下指南为 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 配置为以下内容并运行引导程序创建的 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'>  

我完全被这里打动了。有什么建议么?

4

2 回答 2

5

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

  • 为什么是虚拟环境?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 引导程序吗?

  • bin/buildout -vvv为您提供更多调试信息。

附加评论:djangorecipe 中的version设置在最新版本的 djangorecipe 中已弃用。你可以删除它。如果你想固定 Django,你必须把它固定在你的构建[version]列表中。

于 2012-04-25T13:39:04.023 回答
3

您所遵循的指南有点过时了。[django]处理零件时会失败,特别是在version变量中。您必须以新方式指定版本,该方式显示在djangorecipe 页面中。这是:

[buildout]
parts = django
versions = versions

[versions]
django = 1.4
于 2012-04-25T13:39:29.267 回答