构建 - 使用不同的 python 版本
我已经设置了必须在旧机器上运行的构建项目(具体来说是 django),它在我的本地系统中使用 python 2.7 运行良好。
在生产服务器中,它运行 python 2.5,我想配置构建,它将下载并使用 2.6,但只有这个项目不是系统范围的。
所以我认为它应该使用某种食谱,但是女巫又如何呢?我找不到一个。我希望仅使用 buildout.cfg
文件来实现它。
i have set up buildout project (django to be specific) that has to run in old machine, it works fine in my local system with python 2.7.
In production server it runs python 2.5 and i want to configure buildout that it would download and use 2.6, but only this project not system wide.
So i assume it should use some sort of recipe, but witch and how? I cannot find one. I hope to achieve it only using buildout.cfg
file..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Buildout 特别支持这种场景。构建中的每个部分都可以使用它自己的 python 解释器,或者您可以为所有部分全局设置一个 python 解释器。默认为用于运行 buildout 的 python。
要设置使用的 python 解释器,请将
python
选项设置为包含executable
选项的部分的名称。这可以是构建一个全新的 python 解释器的一部分。这是一个示例:此构建中的任何其他部分现在都将使用 python 2.6 可执行文件。
您可能还想将 python 脚本符号链接到 buildout bin/ 目录中;以下部分将为您做到这一点:
Buildout specifically supports this scenario. Each part in a buildout can use it's own python interpreter, or you can set one python interpreter globally for all parts. This defaults to the python used to run buildout.
To set the python interpreter used, set the
python
option to the name of a part that contains anexecutable
option. This can be a part that builds a whole new python interpreter. Here is an example:Any other parts in this buildout now will use the python 2.6 executable.
You may want to symlink the python script into the buildout
bin/
directory as well; the following part would do that for you:无论您使用哪种 Python 来运行初始 bootstrap.py,都将用于您的整个项目。所有路径都将引用特定的 python,并且将使用该特定 python 的站点包。
这是关于构建的最好的事情之一
这是一个 32 位 python 2.6:
这是一个 64 位 python 2.7:
现在看看它创建的 bin/。
然后执行实际的 bin/buildout -c dev.cfg 并查看 bin 中的脚本。对于我的 32 位示例:
对于我在 django 文件中看到的第一个示例:
接受的答案表示您需要编译整个 python。不需要也不建议这样做,尽管这意味着您有一个完全隔离的站点包。但是有更简单的方法可以告诉构建不包含站点包。
esaelPsnoroMoN 的答案实际上是正确的,但他/她没有很好地描述解决方案。 (之前我自己忽略了)
Whichever python you use to do run the initial bootstrap.py is the one that will be used for your entire project. All paths will reference that specific python and the sitepackages for that specific python will be used.
This is one of the best things about buildout
This is a 32 bit python 2.6:
This is a 64 bit python 2.7:
Now go look at the bin/ it created.
Then do your actual bin/buildout -c dev.cfg and look at the scripts in the bin. For my 32 bit example:
For the first one I see in my django file:
The accepted answer says you need to compile a whole python. This is not needed nor advised, though it would mean you have a completely isolated sitepackages. But there are easier ways to tell buildout to not include the sitepackages.
The answer from esaelPsnoroMoN is actually correct, but s/he didn't describe the solution very well. (I ignored it myself before)
Martijn Pieters 的回答似乎对我没有帮助。我需要在构建脚本中使用不同版本的 python。
这是我的例子
,每次在 python(2|3)_interpreter 脚本中都会写入我用于引导的 python 版本。所以我的 buildout.cfg 似乎没有按预期工作。
Answer of Martijn Pieters doesnt seem to help me. I need different versions of python inside buildout scripts.
This is my example
Every time inside python(2|3)_interpreter scripts will be written that python version which I used for bootstraping. So my buildout.cfg doesnt seem to work as expected.