使用zc.buildout的Django 1.4开发环境

时间:2012-04-25 10:43:48

标签: django buildout

我正在尝试使用以下指南为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'>  

我完全被击中了。有什么建议吗?

2 个答案:

答案 0 :(得分:5)

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

  • 为什么是virtualenv? Buildout本身提供隔离,因此不需要virtualenv。你可以重新尝试一下bootstrap.py和你的buildout.cfg吗?那么只需用你的系统python运行bootstrap.py?

  • 您是否在全球范围内安装了buildout?他们可以干涉。

  • 最新的1.5.2 buildout在某些情况下有一些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,你必须将它固定在你的buildout的[version]列表中。

答案 1 :(得分:3)

您所关注的指南有点过时了。处理[django]部分时会失败,特别是在version变量中。您必须以新方式指定版本,该方式显示在djangorecipe page中。这是:

[buildout]
parts = django
versions = versions

[versions]
django = 1.4