-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
327 lines (237 loc) · 10.6 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
=======================
Using a custom buildout
=======================
Note: If you are using Windows, if you do not have PIL installed, or you are
not using Python 2.4 as your main system Python, please see the relevant
sections below.
You probably got here by running something like:
$ paster create -t plone3_buildout
Now, you need to run:
$ python bootstrap.py
This will install zc.buildout for you.
To create an instance immediately, run:
$ bin/buildout
This will download Plone's eggs and products for you, as well as other
dependencies, create a new Zope 2 installation (unless you specified
an existing one when you ran "paster create"), and create a new Zope instance
configured with these products.
You can start your Zope instance by running:
$ bin/instance start
or, to run in foreground mode:
$ bin/instance fg
To run unit tests, you can use:
$ bin/instance test -s my.package
Installing PIL
--------------
To use Plone, you need PIL, the Python Imaging Library. If you don't already
have this, download and install it from http://www.pythonware.com/products/pil.
Using a different Python installation
--------------------------------------
Buildout will use your system Python installation by default. However, Zope
2.10 (and by extension, Plone) will only work with Python 2.4. You can verify
which version of Python you have, by running:
$ python -V
If that is not a 2.4 version, you need to install Python 2.4 from
http://python.org. If you wish to keep another version as your main system
Python, edit buildout.cfg and add an 'executable' option to the "[buildout]"
section, pointing to a python interpreter binary:
[buildout]
...
executable = /path/to/python
Working with buildout.cfg
-------------------------
You can change any option in buildout.cfg and re-run bin/buildout to reflect
the changes. This may delete things inside the 'parts' directory, but should
keep your Data.fs and source files intact.
To save time, you can run buildout in "offline" (-o) and non-updating (-N)
mode, which will prevent it from downloading things and checking for new
versions online:
$ bin/buildout -Nov
Creating new eggs
-----------------
New packages you are working on (but which are not yet released as eggs and
uploaded to the Python Package Index, aka PYPI) should be placed in src. You can do:
$ cd src/
$ paster create -t plone my.package
Use "paster create --list-templates" to see all available templates. Answer
the questions and you will get a new egg. Then tell buildout about your egg
by editing buildout.cfg and adding your source directory to 'develop':
[buildout]
...
develop =
src/my.package
You can list multiple packages here, separated by whitespace or indented
newlines.
You probably also want the Zope instance to know about the package. Add its
package name to the list of eggs in the "[instance]" section, or under the
main "[buildout]" section:
[instance]
...
eggs =
${buildout:eggs}
${plone:eggs}
my.package
Leave the ${buildout:eggs} part in place - it tells the instance to use the
eggs that buildout will have downloaded from the Python Package Index
previously.
If you also require a ZCML slug for your package, buildout can create one
automatically. Just add the package to the 'zcml' option:
[instance]
...
zcml =
my.package
When you are finished, re-run buildout. Offline, non-updating mode should
suffice:
$ bin/buildout -Nov
Developing old-style products
-----------------------------
If you are developing old-style Zope 2 products (not eggs) then you can do so
by placing the product code in the top-level 'products' directory. This is
analogous to the 'Products/' directory inside a normal Zope 2 instance and is
scanned on start-up for new products.
Depending on a new egg
----------------------
If you want to use a new egg that is in the Python Package Index, all you need
to do is to add it to the "eggs" option under the main "[buildout]" section:
[buildout]
...
eggs =
my.package
If it's listed somewhere else than the Python Package Index, you can add a link
telling buildout where to find it in the 'find-links' option:
[buildout]
...
find-links =
http://dist.plone.org
http://download.zope.org/distribution/
http://effbot.org/downloads
http://some.host.com/packages
Using existing old-style products
---------------------------------
If you are using an old-style (non-egg) product, you can either add it as an
automatically downloaded archive or put it in the top-level "products" folder.
The former is probably better, because it means you can redistribute your
buildout.cfg more easily:
[productdistros]
recipe = plone.recipe.distros
urls =
http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gz
If someproduct-1.3.tar.gz extracts into several products inside a top-level
directory, e.g. SomeProduct-1.3/PartOne and SomeProduct-1.3/PartTwo, then
add it as a "nested package":
[productdistros]
recipe = plone.recipe.distros
urls =
http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gz
nested-packages =
someproduct-1.3.tar.gz
Alternatively, if it extracts to a directory which contains the version
number, add it as a "version suffix package":
[productdistros]
recipe = plone.recipe.distros
urls =
http://plone.org/products/someproduct/releases/1.3/someproduct-1.3.tar.gz
version-suffix-packages =
someproduct-1.3.tar.gz
You can also track products by adding a new bundle checkout part. It
doesn't strictly have to be an svn bundle at all, any svn location will do,
and cvs is also supported:
[buildout]
...
parts =
plone
zope2
productdistros
myproduct
instance
zopepy
Note that "myproduct" comes before the "instance" part. You then
need to add a new section to buildout.cfg:
[myproduct]
recipe = plone.recipe.bundlecheckout
url = http://svn.plone.org/svn/collective/myproduct/trunk
Finally, you need to tell Zope to find this new checkout and add it to its
list of directories that are scanned for products:
[instance]
...
products =
${buildout:directory}/products
${productdistros:location}
${plonebundle:location}
${myproduct:location}
Without this last step, the "myproduct" part is simply managing an svn
checkout and could potentially be used for something else instead.
=============
Using Windows
=============
To use buildout on Windows, you will need to install a few dependencies which
other platforms manage on their own.
Here are the steps you need to follow (thanks to Hanno Schlichting for these):
Python (http://python.org)
--------------------------
- Download and install Python 2.4.4 using the Windows installer from
http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi
Select 'Install for all users' and it will put Python into the
"C:\Python24" folder by default.
- You also want the pywin32 extensions available from
http://downloads.sourceforge.net/pywin32/pywin32-210.win32-py2.4.exe?modtime=1159009237&big_mirror=0
- And as a last step you want to download the Python imaging library available
from http://effbot.org/downloads/PIL-1.1.6.win32-py2.4.exe
- If you develop Zope based applications you will usually only need Python 2.4
at the moment, so it's easiest to put the Python binary on the systems PATH,
so you don't need to specify its location manually each time you call it.
Thus, put "C:\Python24" and "C:\Python24\Scripts" onto the PATH. You can
find the PATH definition in the control panel under system preferences on
the advanced tab at the bottom. The button is called environment variables.
You want to add it at the end of the already existing PATH in the system
section. Paths are separated by a semicolons.
- You can test if this was successful by opening a new shell (cmd) and type
in 'python -V'. It should report version 2.4.4 (or whichever version you
installed).
Opening a new shell can be done quickly by using the key combination
'Windows-r' or if you are using Parallels on a Mac 'Apple-r'. Type in 'cmd'
into the popup box that opens up and hit enter.
Subversion (http://subversion.tigris.org)
-----------------------------------------
- Download the nice installer from
http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe
- Run the installer. It defaults to installing into
"C:\Program Files\Subversion".
- Now put the install locations bin subfolder (for example
"C:\Program Files\Subversion\bin") on your system PATH in the same way you
put Python on it.
- Open a new shell again and type in: 'svn --version' it should report
version 1.4.2 or newer.
MinGW (http://www.mingw.org/)
-----------------------------
This is a native port of the gcc compiler and its dependencies for Windows.
There are other approaches enabling you to compile Python C extensions on
Windows including Cygwin and using the official Microsoft C compiler, but this
is a lightweight approach that uses only freely available tools. As
it's used by a lot of people chances are high it will work for you and there's
plenty of documentation out there to help you in troubleshooting problems.
- Download the MinGW installer from
http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe?modtime=1168794334&big_mirror=1
- The installer will ask you which options you would like to install. Choose
base and make here. It will install into "C:\MinGW" by default. The install
might take some time as it's getting files from sourceforge.net and you
might need to hit 'retry' a couple of times.
- Now put the install location's bin subfolder (for example "C:\MinGW\bin") on
your system PATH in the same way you put Python on it.
- Test this again by typing in: 'gcc --version' on a newly opened shell and
it should report version 3.4.2 or newer.
Configure Distutils to use MinGW
--------------------------------
Some general information are available from
http://www.mingw.org/MinGWiki/index.php/Python%20extensions for example but
you don't need to read them all.
- Create a file called 'distutils.cfg' in "C:\Python24\Lib\distutils". Open it
with a text editor ('notepad distutils.cfg') and fill in the following lines:
[build]
compiler=mingw32
This will tell distutils to use MinGW as the default compiler, so you don't
need to specify it manually using "--compiler=mingw32" while calling a
package's setup.py with a command that involves building C extensions. This
is extremely useful if the build command is written down in a buildout
recipe where you cannot change the options without hacking the recipe
itself. The z2c.recipe.zope2install used in ploneout is one such example.