Nicolas,
I downloaded the stock 2.2.3 binary build. To
get setup.py to link, I had to edit this:
if
winbuild:
libraries = ['libhttpd', 'libapr-1', 'libaprutil-1', 'ws2_32']
(added the -1 to libapr and
libaprutil)
The resultant build produced _psp.pyd and also a
mod_python_so.pyd which I renamed mod_python.so and it ran.
Does this sound right?
- Jeff
----- Original Message -----
Sent: Sunday, November 12, 2006
21:04
Subject: Re: mod_python
3.3.0-dev-20061109 tests on Win32
Indeed, the APACHESRC variable has a slightly misleading name,
since it doesn't need the full blown source installation. When building
mod_python I'm using a stock Win32 Apache 2.0 or 2.2 binary build downloaded
from http://httpd.apache.org/, not a
source distribution. It may or may not work with a source distribution, but
I'm positive it does with a binary one, so Jeff, you should definitely try it
this way.
Regards, Nicolas
2006/11/13, Graham Dumpleton <[EMAIL PROTECTED]>:
Jeff
Robbins wrote .. > Graham, > > These instructions are not
sufficient. The apache environment I have on > windows has
include files in <apachesr>/include but also in >
<apachesrc>/srclib/apr/include,
<apachesrc>/srclib/apr-iconv/include, and >
<apachesrc>/srclib/apr-util/include > > Setting the
APACHESRC environmental per the instructions only finds the > includes
in $APACHESRC/include but not the apr files like apr.h in the >
error > I posted. In the vcproj file, I had to tell the IDE
in some dialog where > to > find these include
files. Is there some other environmental or is there > some
copy phase in the build on Linux that gets all the include files into
> $APACHESRC/include?
All this suggests you are setting
APACHESRC to where the original source code for Apache resides. Can you
see if there is a distinct area where the include files are installed
into along with Apache binaries, modules, config etc. I'm not a Windows
person, but do you have a \Apache2 directory with an include directory
under that. If so, set APACHESRC to \Apache2. If not, then will have to
hope Nicolas is reading email at the moment and comment and he is the
one who normally builds the Win32 binary releases for us.
>
Where is apr.h on your machine?
In the single include directory along
with ap_*.h header files etc where Apache was installed
into.
Graham
> ----- Original Message ----- > From:
"Graham Dumpleton" <[EMAIL PROTECTED]> > To:
<
python-dev@httpd.apache.org> > Sent: Sunday, November 12, 2006
20:18 > Subject: Re: mod_python 3.3.0-dev-20061109 tests on
Win32 > > > > Try follow these instructions: >
> > > http://www.modpython.org/pipermail/mod_python/2006-September/022092.html >
> > > If these are correct, they probably should be put in the
source code > if > > they > > aren't
already. > > > > Graham > > > > Jeff
Robbins wrote .. > >> re: building on Win32 >
>> > >> I tried using setup.py but even once I set
APACHESRC it still couldn't > >> find > >> the apr*
include directories. I set ext_modules = [PSPModule]
alone > and > >> it > >> built _psp.pyd no
problem! > >> > >> > >>
C:\work\mod_python-3.3.0-dev-20061109\dist>python setup.py build >
>> running build > >> running build_py > >>
running build_ext > >> building 'mod_python_so'
extension > >> C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\cl.exe /c > >> /nologo > >> /Ox >
>> /MD /W3 /GX > >> /DNDEBUG -DWIN32 -DNDEBUG
-D_WINDOWS -IC:\work\mod_python- 3.3.0-dev > >>
-20061109\src\include -IC:\work\httpd-2.2.3\include
-IC:\Python24\include > >> -IC:\P > >> ython24\PC
/TcC:\work\mod_python-3.3.0-dev-20061109\src\mod_python.c > >>
/FoC:\work\ > >>
mod_python-3.3.0-dev-20061109\src\mod_python.obj > >>
mod_python.c > >> c:\work\httpd-2.2.3\include\ap_config.h(25) :
fatal error C1083: Cannot > >> open > >> inc
> >> lude file: 'apr.h': No such file or directory >
>> error: command '"C:\Program Files\Microsoft Visual Studio
.NET > >> 2003\Vc7\bin\cl.e > >> xe"' failed with
exit status 2 > >> > >> > >> -----
Original Message ----- > >> From: "Graham Dumpleton" <[EMAIL PROTECTED]> >
>> To: "Jeff Robbins" < [EMAIL PROTECTED]> > >>
Cc: "python-dev list" <python-dev@httpd.apache.org> >
>> Sent: Saturday, November 11, 2006 20:18 > >> Subject:
Re: mod_python 3.3.0-dev-20061109 tests on Win32 > >> >
>> > >> > > >> > On 12/11/2006, at 12:31
AM, Jeff Robbins wrote: > >> > > >> >> 3
problems found on Win32: > >> >> > >>
>> > >> >> 1) _psp didn't build and I don't know how
to build it > >> > > >> > How are you trying
to build mod_python in the first place? Are you > >> >
using > >> > dist/build_installer.bat or using VisualStudio
project file. The > >> > latter > >> >
isn't > >> > really used any longer and isn't tested. We know
that it doesn't list > >> the > >> >
finfoobject.c file for a start. > >> > > >>
>> 2) In the 'Testing PythonImport' test, the path separators in
the > two > >> >> paths being compared are different
(no doubt due to Win32 backslash > >> vs >
>> >> forward slash issues) > >> >> >
>> >> the tests.py code does this: > >>
>> directory =
os.path.dirname(__file__) > >>
>> assert( sys.path.count(directory) ==
1) > >> >> > >> >>
os.path.dirname(__file__) is 'C:\\work\\mod_python-3.3.0- > >>
>> dev-20061109\\test\\htdocs' > >> >> >
>> >> yet sys.path has this in it
'C:/work/mod_python-3.3.0-dev-20061109/ > >> >>
test\\\\htdocs' > >> >> > >> >> so the
assert fails since the first string can't be found in
sys.path > >> >> (count == 0) > >>
> > >> > If in test/test.py you change: > >>
> > >> > c
= Container(PythonPath("[r'%s']+sys.path" % DOCUMENT_ROOT), >
>> > > >> > to: > >> > >
>> > c =
Container(PythonPath("[r'%s']+sys.path" % > >> >
os.path.normpath(DOCUMENT_ROOT)), > >> > > >>
> does it pass? > >> > > >> >> 3) in
test_interpreter_per_directory() the code does this: > >>
>> rsp =
self.vhost_get("test_interpreter_per_directory", '/ > >>
>> subdir/foo.py').upper() > >> >> > >>
>> interpreter+'SUBDIR/' is
'C:/WORK/MOD_PYTHON-3.3.0-DEV-20061109/ > >> >>
TEST/HTDOCS/SUBDIR/' > >> >> rsp is 'C:/WORK/MOD_PYTHON-
3.3.0-DEV-20061109/TEST/HTDOCS/' > >> >> > >>
>> I don't understand the tests.py code but it looks like in
the > >> >> interpreter() code > >> >>
def interpreter(req): > >> >> if
req.phase == "PythonFixupHandler": > >>
>> if req.filename[-1]
!= '/' and os.path.isdir(req.filename): > >>
>> req.write(req.interpreter
) > >>
>> return
apache.DONE > >>
>> return
apache.OK > >> >> else: >
>>
>> req.write(req.interpreter) >
>> >> return
apache.DONE > >> >> > >> >> perhaps the
req.filename 'C:/work/mod_python-3.3.0-dev-20061109/ > >>
>> test/htdocs/subdir' is supposed to pass the os.path.isdir() >
>> >> test...but > >> >> it
doesn't. There is no 'subdir' folder under htdocs
so on Win32, > >> >> os.path.isdir() returns
False. Maybe this is an os dependency? >
>> > > >> > The 'subdir' directory exists in the
tarball. Any chance you > >> > accidentally > >>
> deleted > >> > it somehow? Can you in a fresh directory
unpack the tarball, verify > >> that > >> >
the > >> > directory exists and then rebuild and retest?
> >> > > >> > Graham > >>
> > >> > >
>
|