我正在尝试使用以下指南为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'>
我完全被击中了。有什么建议吗?
答案 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