Jaakko, can you upload a test win32 egg to a location for Ken to make a try with easy_install? If it works, I'll commit the patch (replacing DLLs/ with DLLs_AMD64/ and DLLs_x86/ directories) and tag a 1.2.7.
On Tue, Nov 2, 2010 at 10:09 AM, Jaakko Salli <[email protected]> wrote: > > Hi Sean, Ken, > > I've just tested that combining my changes with Ken's suggestion > works. Attached is a full patch. > > Regards, > Jaakko > > On 2.11.2010 18:05, Sean Gillies wrote: >> Ken, >> >> Jaakko Salli has been making the Windows installers with the following >> diff to setup.py: >> >> diff --git a/setup.py b/setup.py >> index 0ed51f1..a2371d2 100644 >> --- a/setup.py >> +++ b/setup.py >> @@ -44,8 +44,14 @@ setup_args = dict( >> >> # Add DLLs for Windows >> if sys.platform == 'win32': >> - setup_args.update( >> - data_files=[('DLLs', ['DLLs/geos.dll', 'DLLs/libgeos-3-0-0.dll']),] >> - ) >> + import glob >> + if '64 bit (AMD64)' in sys.version: >> + setup_args.update( >> + data_files=[('DLLs', glob.glob('DLLs_AMD64/*.dll'))] >> + ) >> + else: >> + setup_args.update( >> + data_files=[('DLLs', glob.glob('DLLs_x86/*.dll'))] >> + ) >> >> setup(**setup_args) >> >> I believe he's using a GEOS 3.2 DLL now. The diff above is from July. >> >> On Tue, Nov 2, 2010 at 8:59 AM, Ken Watford <[email protected]> wrote: >>> I don't normally work in Windows (this request was for my own Windows >>> users), but I'll see what I can come up with when I can get around to >>> it. >>> >>> Just to be sure, what (if any) modifications do you make to the >>> distribution (wrt your github repo) when building the windows >>> installer, other than adding the DLLs? >>> >>> On Fri, Oct 29, 2010 at 4:55 PM, Sean Gillies <[email protected]> >>> wrote: >>>> Ken, >>>> >>>> I have no Windows machine to test this on, so I'll have to rely on you >>>> for something that works. I like the idea of modifying the DLL search >>>> strategy in shapely.geos. Any changes to setup.py and shapely/geos.py >>>> that you need to make to get this to work I will be happy to commit >>>> and release right away. >>>> >>>> Cheers, >>>> >>>> On Tue, Oct 26, 2010 at 7:40 AM, Ken Watford <[email protected]> wrote: >>>>> I'm not experienced with it either, but I'll take a shot in the dark >>>>> here. There is probably a more setuptools-ish way to do this, but this >>>>> seems to work. >>>>> >>>>> Without really changing anything, bdist_egg works (once you fix >>>>> setup.py - the git repo is still referencing libgeos-3-0-0), but since >>>>> there are no extension modules, distutils doesn't know it has to use >>>>> the platform-specific filename. >>>>> >>>>> An easy_install on the egg then works, but the DLLs are now installed >>>>> relative to the egg itself. I don't personally consider this a bad >>>>> thing, but geos.py needs to be updated to get the PATH set correctly: >>>>> >>>>> elif sys.platform == 'win32': >>>>> try: >>>>> - local_dlls = os.path.abspath(os.__file__ + "../../../DLLs") >>>>> + local_dlls = >>>>> os.path.abspath(os.path.join(os.path.dirname(__file__), "..\\DLLs")) >>>>> original_path = os.environ['PATH'] >>>>> os.environ['PATH'] = "%s;%s" % (local_dlls, original_path) >>>>> _lgeos = CDLL("geos.dll") >>>>> >>>>> Of course, this would now be the wrong path for users of the exe >>>>> installer. >>>>> >>>>> It might be simpler all around to just include the DLLs in the package >>>>> directory itself, maybe in a (platform-specific) subdirectory. I think >>>>> the egg and the installer would probably put them in the same place >>>>> then. >>>>> >>>>> On Thu, Oct 21, 2010 at 3:18 PM, Sean Gillies <[email protected]> >>>>> wrote: >>>>>> I've no experience at all with easy_install of extension modules on >>>>>> Windows. If anybody's got a working solution, I'll be happy to merge >>>>>> it. >>>>>> >>>>>> On Wed, Oct 20, 2010 at 11:19 AM, Ken Watford <[email protected]> wrote: >>>>>>> While running the executable win32 installer directly works fine, >>>>>>> easy_install (in distribute 0.6.14) doesn't seem to like it. It seems >>>>>>> to have trouble with the DLLs (they don't get installed). So if >>>>>>> Shapely were installed automatically as a requirement of something >>>>>>> else, it would appear to succeed but not work properly. Here's what >>>>>>> easy_install says: >>>>>>> >>>>>>> install_dir C:\Python26\Lib\site-packages\ >>>>>>> Searching for Shapely >>>>>>> Reading http://pypi.python.org/simple/Shapely/ >>>>>>> Reading http://trac.gispython.org/projects/PCL/wiki/Shapely >>>>>>> Reading http://trac.gispython.org/projects/PCL/wiki/ShapeLy >>>>>>> Best match: Shapely 1.2.5 >>>>>>> Downloading >>>>>>> http://pypi.python.org/packages/any/S/Shapely/Shapely-1.2.5.win32.exe#md5=ca21552a8e99ae167e869ab1e03f7559 >>>>>>> Processing Shapely-1.2.5.win32.exe >>>>>>> WARNING: can't process DATA/DLLs/geos.dll >>>>>>> WARNING: can't process DATA/DLLs/libgeos-3-2-2.dll >>>>>>> shapely.geos: module references __file__ >>>>>>> creating >>>>>>> 'c:\users\kwatford\temp\easy_install-b1lnet\Shapely-1.2.5-py2.6-win32.egg' >>>>>>> and adding >>>>>>> 'c:\users\kwatford\temp\easy_install-b1lnet\Shapely-1.2.5-py2.6-win32.egg.tmp' >>>>>>> to it >>>>>>> creating C:\python26\lib\site-packages\Shapely-1.2.5-py2.6-win32.egg >>>>>>> Extracting Shapely-1.2.5-py2.6-win32.egg to >>>>>>> C:\python26\lib\site-packages >>>>>>> Adding Shapely 1.2.5 to easy-install.pth file >>>>>>> Installing intersect.pyc script to C:\Python26\Scripts >>>>>>> Installing dissolve.pyc script to C:\Python26\Scripts >>>>>>> Installing dissolve.py script to C:\Python26\Scripts >>>>>>> Installing intersect.py script to C:\Python26\Scripts >>>>>>> >>>>>>> Installed c:\python26\lib\site-packages\shapely-1.2.5-py2.6-win32.egg >>>>>>> Processing dependencies for Shapely >>>>>>> Finished processing dependencies for Shapely >>>>>>> >>>>>>> >>>>>>> I haven't tried this in Win64 yet, but I imagine it probably fails to >>>>>>> work in a similar fashion. _______________________________________________ Community mailing list [email protected] http://lists.gispython.org/mailman/listinfo/community
